如何使用 vb.net 从列表视图插入多个 row/records/items 到 ms 访问

How to insert multiple row/records/items from listview to ms access using vb.net

美好的一天!我正在制作一个将多行保存到 MS access 2007 的程序。我的问题是,当列表视图有 2 个或更多 rows/items 时,它只保存第一行,然后会弹出一个错误,但如果列表视图只有一个项目它保存顺利无误,我喜欢它只需单击一下即可顺利无误地保存列表视图中的所有rows/items。多谢你们!干杯!

注意:字段名称是(及其各自的数据类型):ItemID(数字)Item(文本)Brand(文本)Model(文本)Price(数字)

这里是按钮的代码:

    Dim con As New OleDbConnection

    con.ConnectionString = "Provider=Microsoft.ace.oledb.12.0;data source= ..\dborder.accdb"

    If con.State = ConnectionState.Closed Then
        con.Open()

        For x = 0 To ListView1.Items.Count - 1

            Dim sqlQuery As String = "INSERT INTO tbl_sample Values ('" & ListView1.Items(x).SubItems(0).Text & "', '" & ListView1.Items(x).SubItems(1).Text & "','" & ListView1.Items(x).SubItems(2).Text & "','" & ListView1.Items(x).SubItems(3).Text & "','" & ListView1.Items(x).SubItems(4).Text & "')"

            Dim cmd As New OleDbCommand

            With cmd
                .CommandText = sqlQuery
                .Connection = con
                .ExecuteNonQuery()


            End With
            MsgBox("Transaction Saved")
            ListView1.Items.Clear()


        Next

    End If
    con.Close()

完成循环之前不要清除项目:

移动清除线:

Next
ListView1.Items.Clear() 
MsgBox("Transaction Saved")

您的查询将受益于使用参数来避免 sql 注入和数据转换问题。