我有一个存储表,其中有一个名为 Quantity 的列,其中包含更多行,我也有 tempStore 表,我将数据插入到这个 tempStore 表中,它也有一个名为 Quantity 的列,当我将所有数据输入到 tempStore 然后我有一个发送按钮,可以将我的数据发送到 Store 表以仅更新 Quantity 列,例如在 Store table Quantity=20 中为一行,在 tempStore Quantity=10 中为一行,我可以在按下时轻松更新此行发送按钮,Store 表中的 Quantity 列将是 30,但为什么我不能更新所有匹配的行?它只更新一行。这是我的代码:
SqlConnection con = null;
con = new SqlConnection(@"Data Source=.\SQLEXPRESS;Initial Catalog=SuperMarketDB;Integrated Security=True; MultipleActiveResultSets=True");
con.Open();
SqlCommand cmd = new SqlCommand("SELECT * FROM [Store]", con);
SqlDataReader dr = null;
dr = cmd.ExecuteReader();
int inID = 0;
Int64 itemNo = 0;
int iQuantity = 0;
while (dr.Read())
{
inID = int.Parse(dr[0].ToString());
itemNo = Int64.Parse(dr[1].ToString());
iQuantity = int.Parse(dr[4].ToString());
for (int i = 0; i <= tempStoreDataGridView.Rows.Count-1; i++)
{
if (tempStoreDataGridView.Rows[i].Cells[1].Value != null)
{
Int64 barcode = Int64.Parse(tempStoreDataGridView.Rows[i].Cells[1].Value.ToString());
if (barcode == itemNo)
{
iQuantity = iQuantity + int.Parse(quantityTextBox.Text.ToString());
inItemsTableAdapter1.UpdateQuery(iQuantity, itemNo, inID);
tempStoreTableAdapter.DeleteQuery();
tempStoreTableAdapter.Fill(this.tempStoreDataSet.TempStore);
lblWarning.Visible = true;
}
}
}
}