如何从datagridview将所有记录添加到数据库

时间:2019-02-01 19:30:47

标签: vb.net bulkinsert

我正在将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

1 个答案:

答案 0 :(得分:0)

尝试以下方法:

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列。如果还有更多内容,则可以在其中推断代码。

希望我的答案能解决您的问题