循环:10个文本框控件,用于检查它们是否存在于数据库中

时间:2016-08-19 03:17:07

标签: c# visual-studio ms-access

我有10个文本框控件。在我的数据库中有3列,ItemCodeProductQuantity。我想检查ItemCode是否已存在,因此每次用户输入现有ItemCode时,只有Quantity会更新。

这是我的代码:

try
{
    con.Open();

    OleDbCommand command = new OleDbCommand(@"Select * from TblInventory where ItemCode='" + txtItem.Text + "'");

    command.Connection = con;
    command.Parameters.AddWithValue("itemcode", txtItem.Text);

    OleDbDataReader reader = command.ExecuteReader();

    if (reader.Read())   // Update Item Code if already exit
    {
        OleDbCommand cmd = new OleDbCommand(@"Update TblInventory set Quantity = Quantity + @Quantity WHERE ItemCode = @itemcode");

        cmd.Connection = con;
        cmd.Parameters.AddWithValue("@Quantity", Convert.ToInt32(txtQuantity.Text));
        txtProduct.Text = reader["ProductName"].ToString();
        cmd.Parameters.AddWithValue("@itemcode", txtItem.Text);
        cmd.Parameters.AddWithValue("@DateAndTime", time);

        cmd.ExecuteNonQuery();

        MessageBox.Show("You added " + txtQuantity.Text + " " + txtProduct.Text, "Existing Item");
    }
}

但我的问题是我有10个文本框控件要检查。而不是一个一个地宣布。如何创建一个循环,允许ItemCode的文本框检查它们是否存在?

1 个答案:

答案 0 :(得分:0)

将此整个处理逻辑拉入一个方法,该方法接受Quantity类型INT的两个参数和itemcode类型string的一个参数。然后,对于用户调用的每个新插入,此方法相应地传递这两个文本框值(您必须将文本框值转换为INT以获取数量)。

你也可以考虑返回INT的方法,让我们知道有多少记录已被更新,因为无论如何你正在调用ExecuteNonQuery()并返回相同的记录。