编辑行在c#中加倍行

时间:2018-02-02 20:21:03

标签: c# database

我试图让用户编辑产品,但在我完成代码之后。 它是精确的编辑,但它设置所有具有相同选定值的行

这是我写的代码

cmd = new SqlCommand("UPDATE Products SET Item_Name=@Item_Name, Item_Price=@Item_Price, Item_Code=@Item_Code, Item_Stock=@Item_Stock, Item_ExpDate=@Item_ExpDate", con);

SqlParameter[] param = new SqlParameter[5];

param[0] = new SqlParameter("@Item_Name", SqlDbType.VarChar, 50);
param[0].Value = namesearch.Text;

param[1] = new SqlParameter("@Item_Price", SqlDbType.VarChar, 50);
param[1].Value = pricesearch.Text;

param[2] = new SqlParameter("@Item_Code", SqlDbType.VarChar, 35);
param[2].Value = codesearch.Text;

param[3] = new SqlParameter("@Item_Stock", SqlDbType.Int);
param[3].Value = Convert.ToInt32(stocksearch.Text);

param[4] = new SqlParameter("@Item_ExpDate", SqlDbType.DateTime);
param[4].Value = expdatesearch.Text;

con.Open();
cmd.Parameters.AddRange(param);
cmd.ExecuteNonQuery();
sda = new SqlDataAdapter("SELECT * FROM Products", con);
sda.Fill(dt);
dataGridView1.DataSource = dt;

con.Close();

1 个答案:

答案 0 :(得分:1)

将您的SQL语句更改为: "UPDATE Products SET Item_Name=@Item_Name, Item_Price=@Item_Price, Item_Stock=@Item_Stock, Item_ExpDate=@Item_ExpDate WHERE Item_Code=@Item_Code",假设'Item_Code'是您的唯一标识符。 SQL中的WHERE子句用于过滤UPDATE影响的行数,因此如果省略它,它将更新表中的所有行。