如何使用 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 注入和数据转换问题。
美好的一天!我正在制作一个将多行保存到 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 注入和数据转换问题。