我将出现在一个DataGridView记录到我的数据库,但被添加仅在第一记录的数据 - 多次。
如果有五个行存在,则第一行的数据被添加5倍到数据库中。
Dim a As String
Dim b As String
Dim c As String
Dim d As String
For Each dr As DataGridViewRow In Me.DataGridView1.Rows
If Not dr.IsNewRow Then
a = dr.Cells(0).Value.ToString
b = dr.Cells(1).Value.ToString
c = dr.Cells(2).Value.ToString
d = dr.Cells(3).Value.ToString
connection.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Application.StartupPath & "\sample.accdb"
connection.Open()
sql = "INSERT INTO sampleone(`id`, `first_name`, `last_name`, `age`) VALUES (@ID, @FN, @LN, @AGE)"
cmd.CommandText = sql
cmd.Connection = connection
cmd.Parameters.Add("@ID", OleDbType.Integer).Value = a
cmd.Parameters.Add("@FN", OleDbType.LongVarChar).Value = b
cmd.Parameters.Add("@LN", OleDbType.VarChar).Value = c
cmd.Parameters.Add("@AGE", OleDbType.Integer).Value = d
cmd.ExecuteNonQuery()
connection.Close()
End If
尝试沿着这些路线的东西:
For i = 0 to datagridview.rowCount - 1
QueryExecute($"INSERT INTO `YourTable` VALUES ('{datagridview.Item(0, i).Value}', '{datagridview.Item(1, i).Value}')", DatabaseConnection)
Next
因为我不知道你是如何访问数据库,请输入上面的查询到你的代码。
我也认为你的datagridview有2列。如果有更多的,则可以推断里面的代码。
我希望我的回答已经解决了您的问题