如何所有记录从一个DataGridView添加到数据库

问题描述 投票:-1回答:1

我将出现在一个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
vb.net bulkinsert
1个回答
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列。如果有更多的,则可以推断里面的代码。

我希望我的回答已经解决了您的问题

© www.soinside.com 2019 - 2024. All rights reserved.