匹配另一个表中的多个行时更新多个行

时间:2012-06-06 06:56:21

标签: c# .net ado.net

我有一个存储表,其中有更多行,其中包含一个名为Quantity的列,我也有tempStore表,我将Data插入此tempStore表,并且当我输入所有数据时,它还有一个名为Quantity的列到tempStore然后我有一个发送按钮将我的数据发送到Store表只更新Quantity列,例如在Store表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;
            }
        }
    }
}

0 个答案:

没有答案