2013-04-16 71 views

回答

1

這絕對是我的建議,如果你有你的代碼則可以想出更多更好的

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
     ''create connection 
     Dim conn As SqlConnection = New SqlConnection() 
     conn.Open() 

     Dim comm As SqlCommand = New SqlCommand() 
     comm.Connection = conn 

     ''insert data to sql database row by row 
     Dim name, ageAs String 
     For i As Integer = 0 To Me.DataGridView1.Rows.Count 
      name = Me.DataGridView1.Rows(i).Cells(0).ToString() 
      age= Me.DataGridView1.Rows(i).Cells(1).ToString() 

      comm.CommandText = "insert into mytable(name,age) values('" & name & "','" & age& "')" 
      comm.ExecuteNonQuery() 
     Next 

     conn.Close() 

    End Sub 

這僅僅是一個插入它的方式是最好的它使用存儲過程來插入值,因爲如果你使用SQL可能會發生SQL注入,所以存儲過程是最好的方式,節約使用。

+0

如果我想插入多行datagridview? 或者您可能對我的問題有任何想法?無論如何, ,感謝您的幫助 –

+0

我的建議是爲您使用存儲過程。您需要創建一次可以在查詢中多次使用。 –

+0

使用較新的代碼。這將幫助你實際使用每個循環。 –

2

庫馬爾,有一個與你的代碼有問題

name = Me.DataGridView1.Rows(i).Cells(0).ToString() 

    age= Me.DataGridView1.Rows(i).Cells(1).ToString() 

應該是

name = Me.DataGridView1.Rows(i).Cells(0).Value.ToString() 

    age= Me.DataGridView1.Rows(i).Cells(1).Value.ToString() 
0

更改代碼的行:

For i As Integer = 0 To Me.AddPurchases.Rows.Count 

這一行:

For i As Integer = 0 To Me.AddPurchases.Rows.Count - 1 

以上是verohwm的消息之外的解決方案。 *

0

而不是插入的數據,我試圖更新的記錄,對我

Me.AddPurchases.Rows(I).Cells(0).Value.ToString()

這個聲明沒有不能解決目的這個語句將返回的行數和列數如{行= 0,COL = 1}下一次迭代{行= 0,COL = 1}等 但

Dim roid As String 

    For i As Integer = 0 To Me.edit_role_grid.RowCount - 1 
     roid = Me.edit_role_grid.Rows(i).Cells(0).FormattedValue 
     MsgBox(roid) 

這個工作得很好對我來說,這是返回單元格的文本,現在這個值可以是你sed的任何地方

相關問題