提问人:Johane Grei Wall 提问时间:1/13/2023 最后编辑:Rohad BokharJohane Grei Wall 更新时间:1/14/2023 访问量:56
我在 VB.NET msaccess中插入我的listview项时遇到问题
I have a problem inserting my listview items in ,msaccess in VB.NET
问:
我在 vb.net 中插入我的列表视图项时遇到问题,它指出 INSERT into 语句是错误的。我该如何处理这个错误,什么是快速简便的修复?
For Each item As ListViewItem In ListView1.Items
Dim conn As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\ADMIN\source\repos\TrooTeaFinal\Database\Loginform.accdb")
Dim cmd As New OleDbCommand("INSERT into Order([Customer Name], [Address], [Phone], [Drink], [Quantity], [Size], [Size Price], [Add Ons], [Total of Add Ons], [Discount], [Payment], [DeliveryFee], [AmountPayable], [Date Of Order] VALUES (@Customer Name,@Address,@Phone,@Drink,@Quantity@,@Size,@Size Price,@Add Ons,@Total of Add Ons,@Discount,@Payment,@DeliveryFee,@AmountPayable,@Date Of Order)", conn)
cmd.Parameters.AddWithValue("@Customer Name", item.SubItems(0).Text)
cmd.Parameters.AddWithValue("@Phone", item.SubItems(1).Text)
cmd.Parameters.AddWithValue("@Address", item.SubItems(2).Text)
cmd.Parameters.AddWithValue("@Drink", item.SubItems(3).Text)
cmd.Parameters.AddWithValue("@Quantity", item.SubItems(4).Text)
cmd.Parameters.AddWithValue("@Size", item.SubItems(5).Text)
cmd.Parameters.AddWithValue("@Size Price", item.SubItems(6).Text)
cmd.Parameters.AddWithValue("@Add Ons", item.SubItems(7).Text)
cmd.Parameters.AddWithValue("@Total of Add Ons", item.SubItems(8).Text)
cmd.Parameters.AddWithValue("@Discount", item.SubItems(9).Text)
cmd.Parameters.AddWithValue("@Payment", item.SubItems(10).Text)
cmd.Parameters.AddWithValue("@DeliveryFee", item.SubItems(11).Text)
cmd.Parameters.AddWithValue("@AmountPayable", item.SubItems(12).Text)
cmd.Parameters.AddWithValue("@Date Of Order", item.SubItems(13).Text)
conn.Open()
cmd.ExecuteNonQuery()
conn.Close()
Next
MessageBox.Show("Payment Successful!")
答:
0赞
Rohad Bokhar
1/13/2023
#1
一个快速简便的解决方法是删除空间,所以它会是
For Each item As ListViewItem In ListView1.Items
Dim conn As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\ADMIN\source\repos\TrooTeaFinal\Database\Loginform.accdb")
Dim cmd As New OleDbCommand("INSERT INTO [Order] ([Customer Name], [Address], [Phone], [Drink], [Quantity], [Size], [Size Price], [Add Ons], [Total of Add Ons], [Discount], [Payment], [DeliveryFee], [AmountPayable], [Date Of Order]) VALUES (@CustomerName, @Address, @Phone, @Drink, @Quantity, @Size, @SizePrice, @AddOns, @TotalOfAddOns, @Discount, @Payment, @DeliveryFee, @AmountPayable, @DateOfOrder)", conn)
cmd.Parameters.AddWithValue("@CustomerName", item.SubItems(0).Text)
cmd.Parameters.AddWithValue("@Phone", item.SubItems(1).Text)
cmd.Parameters.AddWithValue("@Address", item.SubItems(2).Text)
cmd.Parameters.AddWithValue("@Drink", item.SubItems(3).Text)
cmd.Parameters.AddWithValue("@Quantity", item.SubItems(4).Text)
cmd.Parameters.AddWithValue("@Size", item.SubItems(5).Text)
cmd.Parameters.AddWithValue("@SizePrice", item.SubItems(6).Text)
cmd.Parameters.AddWithValue("@AddOns", item.SubItems(7).Text)
cmd.Parameters.AddWithValue("@TotalOfAddOns", item.SubItems(8).Text)
cmd.Parameters.AddWithValue("@Discount", item.SubItems(9).Text)
cmd.Parameters.AddWithValue("@Payment", item.SubItems(10).Text)
cmd.Parameters.AddWithValue("@DeliveryFee", item.SubItems(11).Text)
cmd.Parameters.AddWithValue("@AmountPayable", item.SubItems(12).Text)
cmd.Parameters.AddWithValue("@DateOfOrder", item.SubItems(13).Text)
conn.Open()
cmd.ExecuteNonQuery()
conn.Close()
Next
MessageBox.Show("Payment Successful!")
评论
0赞
Johane Grei Wall
1/13/2023
其仍然语法错误
0赞
Rohad Bokhar
1/13/2023
介意告诉错误是什么?顺便说一句,您的代码在 VALUES 之前缺少一个,在 VALUES 之后缺少一个额外的。可能想检查一下!)
@
@Quantity
0赞
jmcilhinney
1/13/2023
除了空格的明显问题外,还有一个保留字,因为表名必须用括号转义。我已经编辑了答案。ORDER
ORDER BY
0赞
Johane Grei Wall
1/13/2023
您的此代码指出关键表达式的数据不匹配
0赞
Rohad Bokhar
1/13/2023
这意味着您需要根据访问数据类型转换要插入的值。例如,你可能是一个整数,所以你需要转换为一个整数Quantity
item.SubItems(4).Text
评论