【发布时间】:2016-08-08 09:12:01
【问题描述】:
cmd3.ExecuteNonQuery() 中存在错误;
for(int i=0; i<listView1.Items.Count;i++)
{
string query2 = "INSERT INTO OrderItems(Order_ID,Item_ID,OI_Quantity,Unit_Price) values ('"+Convert.ToInt32(textBoxId.Text)+"','"+Convert.ToInt32(this.listView1.Items[i].SubItems[5].Text.ToString())+"','"+Convert.ToInt32(this.listView1.Items[i].SubItems[3].Text.ToString())+"','"+Convert.ToInt32(this.listView1.Items[i].SubItems[2].Text.ToString())+"')";
OleDbCommand cmd2= new OleDbCommand(query2,con);
cmd2.ExecuteNonQuery();
string query3 = "UPDATE Item set stock=(select stock from Item where ID='" + Convert.ToInt32(this.listView1.Items[i].SubItems[5].Text.ToString()) + "') - '" + Convert.ToInt32(this.listView1.Items[i].SubItems[3].Text.ToString()) + "' where ID='" + Convert.ToInt32(this.listView1.Items[i].SubItems[5].Text.ToString()) + "' ";
OleDbCommand cmd3 = new OleDbCommand(query3, con);
cmd3.ExecuteNonQuery();
}
【问题讨论】:
-
你的连接字符串是什么?
-
赋值后query3中有什么内容?
-
我已经在代码上面使用了连接字符串,连接没有问题
-
打印查询并在 ssms 中尝试。为什么要在循环中创建两个 cmd?只需在命令上创建并在循环中使用它。 stock=(select stock 可以返回零个或多个。