我有两张不同的牌桌。我使用for循环来插入和更新两个表
这是一个例子:
for (int i=0; i<multientryindex;++i)
{
data1= _listBox[0].Items[i].ToString();
data2= _listBox[1].Items[i].ToString();
// same for other datas
cmd = new MySqlCommand("INSERT INTO (field1,field2) VALUES (@data1,@data2)");
cmd.Parameters.AddWithValue("@data1",data1);
cmd.Parameters.AddWithValue("@data2",data2);
try
{
cmd.ExecuteNonQuery();
}
catch(MySqlException e)
{
}
cmd.Parameters.Clear();
qty = int.Parse(data2);
cmd = MySqlCommand("UPDATE depo SET qty=qty - @adqty WHERE prodid=@prodid ...");
cmd.Parameters.AddWithValue("@adqty",qty);
cmd.Parameters.AddWithValue("@prodid",prodid); //That
try
{
cmd.ExecuteNonQuery();
}
catch(MySqlException e)
{
}
cmd.Parameters.Clear();
}
当我在循环中包含更新查询时,Mysql要求放置&#34;那&#34;在第一个参数。但是,第一个cmd命令中的其他名称不包含此数据。结果是灾难性的。
但如果我对两个for循环做同样的事情,结果就不错了。
MySql无法在同一个循环中运行插入和具有相同连接的更新吗?
这是给定的错误。 @adqty确实存在于第一个命令字符串中。但是mysql告诉我在第一个参数中添加它,当这2个命令在for循环中时相同。