  | 
              
	              
	                
  
    |   | 
   
  
    
        
        รบกวนท่านผู้รู้ช่วยดูให้หน่อยค่ะว่า ทำไมหนู Import  DataGridView To SQL Database ข้อมูลเข้า db ไม่ได้สักที T^T     | 
   
  
    |   | 
   
 
 
 
              
  
          
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 ExecuteNonQuery() จะต้องอยู่ใน Loop ด้วยน่ะครับ                        
               
               | 
             
            
              
			  			  
			                              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2011-09-07 17:36:04 | 
                        By :
                            webmaster | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 Code (VB.NET) 
For I = 0 To DataGridView.RowCount - 1
myCommand.Parameters.Add(@One;, Grid.items(i).value)
myCommand.Parameters.Add(@two;,  Grid.items(i).value) 
mycommand.executenonquery()
Next  
  
 
ประมาณนี้ครับ                        
               
               | 
             
            
              
			  			  
			                              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2011-09-07 17:38:07 | 
                        By :
                            webmaster | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 เขียนให้เลยแล้วกันครับ ให้ Check Syntax ด้วยครับ 
 
Code (VB.NET) 
			Dim objConn As New SqlConnection
			Dim strConnString, strSQL As String
			Dim objCmd As SqlCommand()
            strConnString = "Server=localhost;UID=sa;PASSWORD=;database=mydatabase;Max Pool Size=400;Connect Timeout=600;"
            objConn.ConnectionString = strConnString
            objConn.Open()			
			
			For i = 0 To DataGridView.RowCount - 1
				strSQL = "INSERT INTO files (Name,FilesName,FilesType) " & _
				" VALUES " & _
				" (@sName,@sFilesName,@sFilesType)"
				objCmd = New SqlCommand(strSQL, objConn)
				objCmd.Parameters.Add("@sName", SqlDbType.VarChar).Value = Grid.items(i).value
				objCmd.Parameters.Add("@sFilesName", SqlDbType.Binary).Value = Grid.items(i).value
				objCmd.Parameters.Add("@sFilesType", SqlDbType.VarChar).Value = Grid.items(i).value
				objCmd.ExecuteNonQuery()
			Next  
            objConn.Close()
            objConn = Nothing
 
 
 
 
Go to : ต้องการบันทึกข้อมูลจาก DataGridView ลงฐานข้อมูล Database หลาย ๆ แถวพร้อมกัน ครับ                        
               
               | 
             
            
              
			  			  
			                              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2011-09-07 17:41:15 | 
                        By :
                            webmaster | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 หนูลองทำดู แล้วมันก็ขึ้น error แบบนี้อ่ะค่ะ 
 
  
 
                         
               
               | 
             
            
              
			                
  ประวัติการแก้ไข 2011-09-07 22:47:06              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2011-09-07 22:44:39 | 
                        By :
                            nUnGnInG_ReScUe | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 ตรง Grid.Item(i).value ต้องอ้างถึง DataGridView1.rows(i).cell("").value ไม่ใช่่หรือครับ 
 
New SqlCommand() ตอนประกาศตัวแปรเลย 
 
อย่าลืม objcmd.Parameters.Clear() หลัง objcmd.ExecuteNonquery() 
 
ลองดูครับ                        
               
               | 
             
            
              
			                              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2011-09-08 09:24:40 | 
                        By :
                            ่ำVC#.Net | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 ขอบคุณทั้งพี่วินและคุณเอ นะคะ ลองทำตามแล้ว..แต่ก็ยังไม่ได้อยู่ดีง่าาา T^T                        
               
               | 
             
            
              
			                              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2011-09-09 13:18:31 | 
                        By :
                            nUnGnInG_ReScUe | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 คือว่า...ข้อมูลที่มันโชว์ใน datagrid มันมาจากการที่หนู browse เลือกไฟล์ขึ้นมาแล้วให้มันโชว์ใน datagrid นะคะ ไม่ทราบว่ามันเกี่ยวมั๊ยที่มัน เก็บลงใน sql  ไม่ได้สักที ><                        
               
               | 
             
            
              
			                              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2011-09-09 15:06:52 | 
                        By :
                            nUnGnInG_ReScUe | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 Code (C#) 
com = new SqlCommand();
  {
   com.CommandType = CommandType.Text;
   com.CommandText = savehaed;
   com.Parameters.Clear();
   com.Connection = con;
   com.Parameters.Add("@OU_Code", SqlDbType.VarChar).Value = Idou_code.ToString();
   com.Parameters.Add("@Doc_No", SqlDbType.VarChar).Value = dataGridView1.Rows[i].Cells[0].Value;
   com.Parameters.Add("@Bat_No", SqlDbType.VarChar).Value = dataGridView1.Rows[i].Cells[1].Value;
   com.Parameters.Add("@old_price", SqlDbType.VarChar).Value = dataGridView1.Rows[i].Cells[2].Value;
   com.Parameters.Add("@u_price", SqlDbType.VarChar).Value = dataGridView1.Rows[i].Cells[3].Value;
   com.Parameters.Add("@amount", SqlDbType.VarChar).Value = dataGridView1.Rows[i].Cells[4].Value;
   com.Parameters.Add("@totall", SqlDbType.VarChar).Value = dataGridView1.Rows[i].Cells[5].Value;
   com.Parameters.Add("@fg_name", SqlDbType.VarChar).Value = dataGridView1.Rows[i].Cells[6].Value;
   com.Parameters.Add("@add_date", SqlDbType.Date).Value = dateTimePicker1.Value.ToString("dd / MM / yyyy");
    com.ExecuteNonQuery();
  }
 
เอาไปเป็นตัวอย่างนะคับ                        
               
               | 
             
            
              
			                
  ประวัติการแก้ไข 2011-09-09 15:23:48              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2011-09-09 15:21:34 | 
                        By :
                            Testprogram | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	     
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 แงๆๆ ทำไม่ได้อ่ะ หนูลองทำตามที่ คุณA แล้วก็พี่วินบอก ก็ยังไม่ได้อยู่ดี หรือมันจะเกี่ยวกับที่หนู ใช้การ browse ไฟล์ขึ้นมาโชว์ที่ datagrid คะ รบกวนพี่ๆดู โค้ดให้หนูหน่อยนะคะ หนูลองหาโค้ดมาทำเป็นเดือนแล้วก็ไม่ได้สักที จนต้องมาโพสต์ขอความช่วยเหลือจากพี่ๆแล้วง่าาา ช่วยหน่อยนะคะ หนูต้องส่งอาทิตย์หน้าแล้ว T^T 
 
Code (VB.NET) 
Imports System.IO
Imports System.Text
Imports System.Data
Imports System.Data.SqlClient
Imports System.Data.OleDb
Public Class Form1
    Dim Conn As SqlConnection
    Dim com As SqlCommand
    Dim tr As SqlTransaction
    Dim sb As New StringBuilder()
    Dim strConn As String
    Dim da As New SqlDataAdapter
    Dim ds As DataSet = New DataSet
    Dim stringPath As String = Application.StartupPath
    
    Private Sub btnBrowse_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBrowse.Click
        ' โค้ดการ Browse file มาโชว์ที่ datagridview
        Dim ofd As New OpenFileDialog()
        'Filter เฉพาะ Text และ csv ไฟล์ 
        ofd.Filter = "All file(*.txt,*.scv)|*.txt;*.csv|Text files(*.txt)|*.txt|CSV (*.csv)|*.csv"
        Dim _path As String = ""
        Dim _filenname As String = ""
        Dim dt As New DataTable()
        If ofd.ShowDialog() = DialogResult.OK Then
            'ดึงพาธของไฟล์ csv มาเก็บไว้ที่ตัวแปร _path 
            _path = Path.GetDirectoryName(ofd.FileName)
            'ดึงเฉพาะชื่อไฟล์ (*.scv) มาเก็บไว้ที่ตัวแปร _filenname 
            _filenname = Path.GetFileName(ofd.FileName)
            'แสดงป้ายชื่อพาธเต็มของไฟล์ (*.csv) 
            Labelshow.Text = ofd.FileName
            'connection string โยนพาธไฟล์ (*.csv) เข้าไปที่ [Source] ตามที่ผู้ใช้งานเลือก จาก OpenFileDialog 
            'Extended Properties: 
            ' HDR=YES หมายความว่าให้แสดงข้อมูลในไฟล์ (*.csv) บรรทัดแรกเป็นชื่อ Column 
            ' HDR=NO หมายความว่า ให้ถือบรรทัดแรกเป็นเนื้อของข้อมูล และให้แทน Column ด้วย F1,F2…ไปเรื่อยๆตามจำนวน Column ของข้อมูล 
            Dim conString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + _path + ";Extended Properties=""Text;HDR=YES;FMT=Delimited"""
            Dim conn As New OleDbConnection(conString)
            'โยนชื่อเฉพาะชื่อไฟล์ เข้าไปใน Sql statement 
            Dim da As New OleDbDataAdapter("Select * from " + _filenname, conn)
            'บรรจุ(Fill) ข้อมูลให้ DataTable (dt) 
            da.Fill(dt)
            'กำหนด DataTable (dt) ให้เป็นแหล่งข้อมูลของ dataGridView1
            DataGridView1.DataSource = dt
        End If
    End Sub
    Private Sub btnImport_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnImport.Click
        Dim objConn As New SqlConnection
        Dim strConnString, strSQL As String
        Dim objCmd As SqlCommand()
        strConnString = "Server=localhost;UID=sa;PASSWORD=paisolalee;database=cdrdb;Max Pool Size=400;Connect Timeout=600;"
        objConn.ConnectionString = strConnString
        objConn.Open()
        For i = 0 To DataGridView1.RowCount - 1
            strSQL = "INSERT INTO cdr(running_no,sms,username,tel_user,tel_receive,tel_sub,status_sent,status_receive,date_submit,date_server,amount_char,content_sms) " & _
            " VALUES " & _
            " (@running_no,@sms,@username,@tel_user,@tel_receive,@tel_sub,@status_sent,@status_receive,@date_submit,@date_server,@amount_char,@content_sms)"
            objCmd = New SqlCommand(strSQL, objConn)
            objCmd.Parameters.Add("@running_no", SqlDbType.VarChar).Value = DataGridView1.Rows(i).cell(0).value
            objCmd.Parameters.Add("@sms", SqlDbType.Binary).Value = DataGridView1.Rows(i).cell(1).value
            objCmd.Parameters.Add("@username", SqlDbType.VarChar).Value = DataGridView1.Rows(i).cell(2).value
            objCmd.Parameters.Add("@tel_user", SqlDbType.VarChar).Value = DataGridView1.Rows(i).cell(3).value
            objCmd.Parameters.Add("@tel_receive", SqlDbType.VarChar).Value = DataGridView1.Rows(i).cell(4).value
            objCmd.Parameters.Add("@tel_sub", SqlDbType.VarChar).Value = DataGridView1.Rows(i).cell(5).value
            objCmd.Parameters.Add("@status_sent", SqlDbType.VarChar).Value = DataGridView1.Rows(i).cell(6).value
            objCmd.Parameters.Add("@status_receive", SqlDbType.VarChar).Value = DataGridView1.Rows(i).cell(7).value
            objCmd.Parameters.Add("@date_submit", SqlDbType.VarChar).Value = DataGridView1.Rows(i).cell(8).value
            objCmd.Parameters.Add("@date_server", SqlDbType.VarChar).Value = DataGridView1.Rows(i).cell(9).value
            objCmd.Parameters.Add("@amount_char", SqlDbType.VarChar).Value = DataGridView1.Rows(i).cell(10).value
            objCmd.Parameters.Add("@content_sms", SqlDbType.VarChar).Value = DataGridView1.Rows(i).cell(11).value
            objCmd.ExecuteNonQuery()
            objCmd.Parameters.Clear()
        Next
        MessageBox.Show("บันทึกข้อมูลแล้ว")
        objConn.Close()
        objConn = Nothing
    End Sub
End Class
 
 
 
error มันขึ้นแบบนี้อ่ะค่ะ  
 
                         
               
               | 
             
            
              
			                
  ประวัติการแก้ไข 2011-09-09 16:40:43 2011-09-09 16:49:01 2011-09-09 16:50:31              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2011-09-09 16:37:33 | 
                        By :
                            nUnGnInG_ReScUe | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 Code (VB.NET) 
objCmd.Parameters.Add("@password", SqlDbType.int).Value =Convert.ToInt32(DataGridView1.Rows(i).cell("2").value)
 
 
ในฐานข้อมูลเป้นข้อมูลชนิดไหนคับ  
ลอง Convert ดูนะคับ 
ผมพึงเจอมาเหมือกัน      
ผมไม่แน่ใจว่าคุณวาง  
 
objCmd.Parameters.Clear() 
ถูกหรือปล่าว น่าจะเอาไปวาง ข้างล่าง  
 
next 
 
นะคับ                        
               
               | 
             
            
              
			                
  ประวัติการแก้ไข 2011-09-09 16:55:56 2011-09-09 17:00:04 2011-09-09 17:03:36              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2011-09-09 16:52:55 | 
                        By :
                            Testprogram | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 cell มันเริ่มที่ 0 ใช่ไหมคะ หนูก็ใส่ถูกแล้วไม่ใช่หรอ?? 
 
Code (VB.NET) 
            objCmd.Parameters.Add("@running_no", SqlDbType.VarChar).Value = DataGridView1.Rows(i).cell(0).value
            objCmd.Parameters.Add("@sms", SqlDbType.Binary).Value = DataGridView1.Rows(i).cell(1).value
            objCmd.Parameters.Add("@username", SqlDbType.VarChar).Value = DataGridView1.Rows(i).cell(2).value
            objCmd.Parameters.Add("@tel_user", SqlDbType.VarChar).Value = DataGridView1.Rows(i).cell(3).value
            objCmd.Parameters.Add("@tel_receive", SqlDbType.VarChar).Value = DataGridView1.Rows(i).cell(4).value
            objCmd.Parameters.Add("@tel_sub", SqlDbType.VarChar).Value = DataGridView1.Rows(i).cell(5).value
            objCmd.Parameters.Add("@status_sent", SqlDbType.VarChar).Value = DataGridView1.Rows(i).cell(6).value
            objCmd.Parameters.Add("@status_receive", SqlDbType.VarChar).Value = DataGridView1.Rows(i).cell(7).value
            objCmd.Parameters.Add("@date_submit", SqlDbType.VarChar).Value = DataGridView1.Rows(i).cell(8).value
            objCmd.Parameters.Add("@date_server", SqlDbType.VarChar).Value = DataGridView1.Rows(i).cell(9).value
            objCmd.Parameters.Add("@amount_char", SqlDbType.VarChar).Value = DataGridView1.Rows(i).cell(10).value
            objCmd.Parameters.Add("@content_sms", SqlDbType.VarChar).Value = DataGridView1.Rows(i).cell(11).value
                        
               
               | 
             
            
              
			                              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2011-09-09 16:59:53 | 
                        By :
                            nUnGnInG_ReScUe | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                   ตอบความคิดเห็นที่ : 11 เขียนโดย : Testprogram เมื่อวันที่ 2011-09-09 16:52:55 
รายละเอียดของการตอบ ::
  ฐานข้อมูลเป็น NVarchar หมดเลยค่ะ (แก้ใหม่แล้วค่ะ เป็น 
 Code (VB.NET)
objCmd.Parameters.Add("@running_no", SqlDbType.NVarChar).Value = DataGridView1.Rows(i).cell(0).value
            objCmd.Parameters.Add("@sms", SqlDbType.NVarChar).Value = DataGridView1.Rows(i).cell(1).value
            objCmd.Parameters.Add("@username", SqlDbType.NVarChar).Value = DataGridView1.Rows(i).cell(2).value
            objCmd.Parameters.Add("@tel_user", SqlDbType.NVarChar).Value = DataGridView1.Rows(i).cell(3).value
            objCmd.Parameters.Add("@tel_receive", SqlDbType.NVarChar).Value = DataGridView1.Rows(i).cell(4).value
            objCmd.Parameters.Add("@tel_sub", SqlDbType.NVarChar).Value = DataGridView1.Rows(i).cell(5).value
            objCmd.Parameters.Add("@status_sent", SqlDbType.NVarChar).Value = DataGridView1.Rows(i).cell(6).value
            objCmd.Parameters.Add("@status_receive", SqlDbType.NVarChar).Value = DataGridView1.Rows(i).cell(7).value
            objCmd.Parameters.Add("@date_submit", SqlDbType.NVarChar).Value = DataGridView1.Rows(i).cell(8).value
            objCmd.Parameters.Add("@date_server", SqlDbType.NVarChar).Value = DataGridView1.Rows(i).cell(9).value
            objCmd.Parameters.Add("@amount_char", SqlDbType.NVarChar).Value = DataGridView1.Rows(i).cell(10).value
            objCmd.Parameters.Add("@content_sms", SqlDbType.NVarChar).Value = DataGridView1.Rows(i).cell(11).value
)
                         
               
               | 
             
            
              
			                
  ประวัติการแก้ไข 2011-09-09 17:08:21              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2011-09-09 17:03:09 | 
                        By :
                            nUnGnInG_ReScUe | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 objCmd.Parameters.Clear() วางไว้ข้างล่าง next แล้วค่ะ แต่ error ยังเท่าเดิมอยู่เลยค่ะ                        
               
               | 
             
            
              
			                              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2011-09-09 17:06:34 | 
                        By :
                            nUnGnInG_ReScUe | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 ลองเพิ่มแค่คอลัมภ์เดียวก่อน 
 
หวังว่า คุณไม่ได้บังคับคอลัมภ์ ว่าต้องมีข้อมูลในตอนออกแบบตารางนะครับ 
(cells  ต้องมี s ด้วย) 
 
Code (VB.NET) 
    Private Sub btnImport_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnImport.Click
        Dim objConn As New SqlConnection
        Dim strConnString, strSQL As String
        Dim objCmd As SqlCommand()
        strConnString = "Server=localhost;UID=sa;PASSWORD=paisolalee;database=cdrdb;Max Pool Size=400;Connect Timeout=600;"
        objConn.ConnectionString = strConnString
        objConn.Open()
            strSQL = "INSERT INTO cdr(running_no) VALUES(@running_no)"
            objCmd = New SqlCommand(strSQL, objConn)
            objCmd.Parameters.Add("@running_no", SqlDbType.VarChar)
        For i = 0 To DataGridView1.RowCount - 1
            objCmd.Parameters("@running_no").Value = DataGridView1.Rows(i).cells(0).value
            objCmd.ExecuteNonQuery()
        Next
        MessageBox.Show("บันทึกข้อมูลแล้ว")
        objConn.Close()
        objConn = Nothing
    End Sub
                        
               
               | 
             
            
              
			                
  ประวัติการแก้ไข 2011-09-09 17:14:03 2011-09-09 17:14:58              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2011-09-09 17:13:26 | 
                        By :
                            watcharop | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 มัน Error ที่บรรทัดที่  60 ครับ 
 
Error 
Dim objCmd As SqlCommand() 
not Error 
Dim objCmd As SqlCommand 
 
ที่่เหลือลองไล่ Debug ดูครับ                        
               
               | 
             
            
              
			                              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2011-09-09 17:47:36 | 
                        By :
                            ่ำVC#.Net | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 เง้อๆๆ หนูลองทำตามที่คุณหางอึ่ง แล้วก็คุณเอบอกแล้วนะคะ แต่พอรันแล้วมันขึ้นอย่างนี้อ่าาา 
                         
               
               | 
             
            
              
			                
  ประวัติการแก้ไข 2011-09-10 23:19:20 2011-09-10 23:51:14 2011-09-11 00:12:36 2011-09-11 00:42:21 2011-09-11 00:43:32              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2011-09-10 23:16:37 | 
                        By :
                            nUnGnInG_ReScUe | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 เง้อออออ พอมีใครทราบบ้างมั๊ยคะว่ามัน error เพราะอะไรอ่าาาา??                        
               
               | 
             
            
              
			                              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2011-09-11 20:13:18 | 
                        By :
                            nUnGnInG_ReScUe | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 ลองแบบนี้ดู 
strConnString = "Server=localhost;UID=sa;PASSWORD=paisolalee;database=cdrdb;Max Pool Size=400;ConnectTimeout=600;" 
        objConn.ConnectionString = strConnString 
        objConn.Open() 
 
        objCmd = New SqlClient.SqlCommand(strSQL, objConn) 
        strSQL = "INSERT INTO cdr(running_no) VALUES(@running_no)"        
        objCmd.Parameters.Add("@running_no", SqlDbType.VarChar).Value = "111" 
        objCmd.ExecuteNonQuery() 
 
 
ไม่ต้องวน Loop GridView 
ถ้าได้ ค่อยเอา Code ไปวางใน loop 
        objCmd = New SqlClient.SqlCommand(strSQL, objConn) 
        strSQL = "INSERT INTO cdr(running_no) VALUES(@running_no)"        
        objCmd.Parameters.Add("@running_no", SqlDbType.VarChar).Value = "111" 
        objCmd.ExecuteNonQuery()                        
               
               | 
             
            
              
			                              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2011-09-11 21:43:49 | 
                        By :
                            VC#.Net | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 เย่ๆๆ ตอนนี้มัน import ได้แแล้วค่ะ แต่ว่า พอ browse เลือกไฟล์ เสร็จแล้วกด import แทนที่มันจะขึ้น message box โชว์ว่า "บันทึกข้อมูลแล้ว" แต่มันขึ้น warning เตือน line 82 ซึ่งก็คือ objCmd.ExecuteNonQuery() (เหมือนรูปที่หนู capture ให้ดูด้านบน) ซึ่งเหมือนมันจะ import ไม่ได้ แต่หนูลองเข้าไปดูใน sql ปรากฏว่า ข้อมูลมันได้เข้าแล้ว แล้วอย่างนี้มันหมายความว่ายังไงอ่ะคะ                        
               
               | 
             
            
              
			                              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2011-09-13 09:07:33 | 
                        By :
                            nUnGnInG_ReScUe | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 ที่ Import ได้เพราะไม่ได้ Control Transaction รอบก่อนหน้านี้มันสามารถ Execute ผ่านได้ 
พอถึงรอบนี้มันจะ Error ถ้า Control Transaction มันก็จะทำการ Rollback ข้อมูลรอบก่อนหน้าก็จะไม่มี 
การบันทึกครับ 
http://kasem-mesak.blogspot.com/2011/02/vbnet-transaction.html 
 
Code ไกล้สำเร็จแล้วถ้าไงลองเอา Code มา Post อีกที                        
               
               | 
             
            
              
			                              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2011-09-13 09:56:17 | 
                        By :
                            ่ำVC#.Net | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 ตามตัวอย่างนี้ดูครับ 
 
Code (VB.NET) 
Imports System.Data
Imports System.Data.SqlClient
Imports System.Text
Public Class Form1
    Private com As New SqlCommand
    Private con As New SqlConnection
    Private sb As New StringBuilder
    Private tr As SqlTransaction
    Private strsql As String
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    End Sub
    Private Sub CreateConnectDB()
        If con.State = ConnectionState.Open Then con.Close()
        con.ConnectionString = "Data Source=127.0.01;Initial Catalog=DBProduct;Persist Security Info=True;User ID=sa;Password=1234"
        con.Open()
    End Sub
    Private Sub CreateDataCommand(ByVal sql As String)
        com.CommandType = CommandType.Text
        com.CommandText = sql
        com.Connection = con
        com.Transaction = tr
        com.Parameters.Clear()
    End Sub
    Private Sub InsertDataToDB()
        CreateConnectDB()
        tr = con.BeginTransaction()
        Try
            For index As Integer = 0 To DataGridView1.Rows.Count - 1
                sb.Remove(0, sb.Length)
                sb.Append(" Insert Into Product (ProductId,ProductName,ProductQty,ProductPrice) ")
                '        (" Values (type string,type string, type int  , type double) ")
                sb.Append(" Values (@ProductId,@ProductName,@ProductQty,@ProductPrice) ")
                strsql = sb.ToString()
                CreateDataCommand(strsql)
                com.Parameters.AddWithValue("@ProductId", DataGridView1.Rows(index).Cells(0).Value.ToString())
                com.Parameters.AddWithValue("@ProductName", DataGridView1.Rows(index).Cells(0).Value.ToString())
                com.Parameters.AddWithValue("@ProductQty", Integer.Parse(DataGridView1.Rows(index).Cells(0).Value.ToString()))
                com.Parameters.AddWithValue("@ProductPrice", Double.Parse(DataGridView1.Rows(index).Cells(0).Value.ToString()))
                com.ExecuteNonQuery()
            Next
            tr.Commit()
            MsgBox("บันทึกข้อมูลเรียบร้อย", MsgBoxStyle.Information, "ผลการทำงาน")
        Catch ex As Exception
            tr.Rollback()
            MsgBox("ไม่สามารถบันทึกข้อมูลได้  เนื่องจาก" & ex.ToString(), MsgBoxStyle.Critical, "ผลการทำงาน")
        End Try
    End Sub
End Class
                        
               
               | 
             
            
              
			                              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2011-09-13 10:03:01 | 
                        By :
                            lee_latee | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 โทษทีครับ ลืมเปลี่ยน index Grid 
แก้ตามนี้ครับ 
Code (VB.NET) 
 For index As Integer = 0 To DataGridView1.Rows.Count - 1
                sb.Remove(0, sb.Length)
                sb.Append(" Insert Into Product (ProductId,ProductName,ProductQty,ProductPrice) ")
                '        (" Values (type string,type string, type int  , type double) ")
                sb.Append(" Values (@ProductId,@ProductName,@ProductQty,@ProductPrice) ")
                strsql = sb.ToString()
                CreateDataCommand(strsql)
                com.Parameters.AddWithValue("@ProductId", DataGridView1.Rows(index).Cells(0).Value.ToString())
                com.Parameters.AddWithValue("@ProductName", DataGridView1.Rows(index).Cells(1).Value.ToString())
                com.Parameters.AddWithValue("@ProductQty", Integer.Parse(DataGridView1.Rows(index).Cells(2).Value.ToString()))
                com.Parameters.AddWithValue("@ProductPrice", Double.Parse(DataGridView1.Rows(index).Cells(3).Value.ToString()))
                com.ExecuteNonQuery()
            Next
                        
               
               | 
             
            
              
			                              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2011-09-13 10:05:18 | 
                        By :
                            lee_latee | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 เอ่อ..พี่เอคะ คือว่าหนูยังงงๆอยุ่ว่า ให้หนูทำ transaction ก่อน หรือว่า ให้หนูโพสต์ โค้ดตอนนี้ ก่อนอ่ะคะ                        
               
               | 
             
            
              
			                              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2011-09-13 17:56:03 | 
                        By :
                            nUnGnInG_ReScUe | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 โพสต์ โค้ดตอนนี้ ก่อน เมื่อแก้ Bug ได้แล้วค่อยปรับแก้ให้มีการ Control Transaction (ศึกษาทำความเข้าใจกับ Transaction ก่อนครับ) ซึ่งดูจากตัวอย่างที่คุณ tee นำตัวอย่างมาให้ดู 
หรือว่าจะดูกระทู้เก่า ๆ ในบอร์ด์ก็ได้ครับ                        
               
               | 
             
            
              
			                              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2011-09-13 18:26:23 | 
                        By :
                            ่ำVC#.Net | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 Code (VB.NET) 
Private Sub btnImport_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnImport.Click
        Dim objConn As New SqlConnection
        Dim strConnString, strSQL As String
        Dim objCmd As SqlCommand
        strConnString = "Server=localhost;UID=sa;PASSWORD=paisolalee;database=cdrdb;Max Pool Size=400;Connect Timeout=600;"
        objConn.ConnectionString = strConnString
        objConn.Open()
        For i = 0 To DataGridView1.RowCount - 1
            strSQL = "INSERT INTO cdr(running_no,sms,username,tel_user,tel_receive,tel_sub,status_sent,status_receive,date_submit,date_server,amount_char,content_sms) VALUES (@running_no,@sms,@username,@tel_user,@tel_receive,@tel_sub,@status_sent,@status_receive,@date_submit,@date_server,@amount_char,@content_sms)"
            objCmd = New SqlCommand(strSQL, objConn)
            objCmd.Parameters.Add("@running_no", SqlDbType.VarChar).Value = DataGridView1.Rows(i).Cells(0).Value()
            objCmd.Parameters.Add("@sms", SqlDbType.NVarChar).Value = DataGridView1.Rows(i).Cells(1).Value
            objCmd.Parameters.Add("@username", SqlDbType.NVarChar).Value = DataGridView1.Rows(i).Cells(2).Value
            objCmd.Parameters.Add("@tel_user", SqlDbType.NVarChar).Value = DataGridView1.Rows(i).Cells(3).Value
            objCmd.Parameters.Add("@tel_receive", SqlDbType.NVarChar).Value = DataGridView1.Rows(i).Cells(4).Value
            objCmd.Parameters.Add("@tel_sub", SqlDbType.NVarChar).Value = DataGridView1.Rows(i).Cells(5).Value
            objCmd.Parameters.Add("@status_sent", SqlDbType.NVarChar).Value = DataGridView1.Rows(i).Cells(6).Value
            objCmd.Parameters.Add("@status_receive", SqlDbType.NVarChar).Value = DataGridView1.Rows(i).Cells(7).Value
            objCmd.Parameters.Add("@date_submit", SqlDbType.NVarChar).Value = DataGridView1.Rows(i).Cells(8).Value
            objCmd.Parameters.Add("@date_server", SqlDbType.NVarChar).Value = DataGridView1.Rows(i).Cells(9).Value
            objCmd.Parameters.Add("@amount_char", SqlDbType.NVarChar).Value = DataGridView1.Rows(i).Cells(10).Value
            objCmd.Parameters.Add("@content_sms", SqlDbType.NVarChar).Value = DataGridView1.Rows(i).Cells(11).Value
            objCmd.ExecuteNonQuery()
        Next
        objCmd.Parameters.Clear()
        MessageBox.Show("บันทึกข้อมูลแล้ว")
        objConn.Close()
        objConn = Nothing
    End Sub
 
 
 
อ้อ...แล้วก็ มี warning เตือนแบบนี้ด้วยนะคะ หนูไม่ทราบว่ามันมีส่วนเกี่ยวข้องไหมอ่ะค่ะ 
 
                         
               
               | 
             
            
              
			                              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2011-09-14 09:35:41 | 
                        By :
                            nUnGnInG_ReScUe | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 1.เอาบรรทัดที่ 13, 14 ไปไว้ที่บรรทัด 11 
เพราะถ้าวางใน Loop for การทำงานในแต่ละครั้งจะมี Step การทำงานเพิ่มขึ้นอีก 2 step ถ้ามี 100 รอบ Step การทำงาน = 100 * 2 
(มันไม่ได้กระทบอะไรมากมายหรอกครับ) 
2,แล้วลองเช็คบรรทัดที่ 15 ดู 
3,เอาบรรทัดที่ 31 ไปวางบรรทัดที่ 28 
4,ถ้าจะให้ดีลองเอา Warning ที่เห็นไปแปลดูก่อนคราวหน้าเจอจะได้แก้ได้ 
 
5.แล้วลองดูการ Control Transaction ตามแบบของคุณ tee ดูครับ                        
               
               | 
             
            
              
			                              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2011-09-14 11:07:00 | 
                        By :
                            ่ำVC#.Net | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 อ่อ หนูพอเข้าใจ transaction แล้ว จากกระทู้นี้ >> https://www.thaicreate.com/dotnet/forum/047985.html ขอบคุณนะคะ ^^                        
               
               | 
             
            
              
			                
  ประวัติการแก้ไข 2011-09-14 15:54:07              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2011-09-14 14:59:25 | 
                        By :
                            nUnGnInG_ReScUe | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
      		  
	
     | 
   
 
                 |