我有10个文本框控件。在我的数据库中有3列,ItemCode
,Product
和Quantity
。我想检查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
的文本框检查它们是否存在?
答案 0 :(得分:0)
将此整个处理逻辑拉入一个方法,该方法接受Quantity
类型INT
的两个参数和itemcode
类型string
的一个参数。然后,对于用户调用的每个新插入,此方法相应地传递这两个文本框值(您必须将文本框值转换为INT
以获取数量)。
你也可以考虑返回INT
的方法,让我们知道有多少记录已被更新,因为无论如何你正在调用ExecuteNonQuery()
并返回相同的记录。