如何使用vb.net从listview插入多行/记录/项目到ms访问

时间:2015-03-01 15:16:58

标签: vb.net ms-access-2007

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

注意:字段名称是(及其各自的数据类型):ItemID(数字)项目(文本)品牌(文本)模型(文本)价格(数字)

这是按钮的代码:

    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()

1 个答案:

答案 0 :(得分:1)

完成完成循环之前,请不要清除这些项目:

移动清除行:

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

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