美好的一天!我正在创建一个程序,它将多行保存到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()
答案 0 :(得分:1)
在完成完成循环之前,请不要清除这些项目:
移动清除行:
Next
ListView1.Items.Clear()
MsgBox("Transaction Saved")
您的查询将受益于使用参数来避免SQL注入和数据转换问题。