【发布时间】:2015-12-22 14:45:55
【问题描述】:
private void button1_Click(object sender, EventArgs e)
{
cn.Open();
SqlCommand cmd = new SqlCommand("UPDATE MEDICINE_REGISTRATION SET stock = @RStock WHERE id= " + Order_Datagridview.SelectedRows[0].Cells["id"].Value.ToString() + "", cn);
foreach (DataGridViewRow row in Order_Datagridview.Rows)
{
// cmd.Parameters.AddWithValue("@RStock", row.Cells["RStock"].Value);
cmd.Parameters.Add("@RStock", SqlDbType.VarChar).Value = Order_Datagridview.SelectedRows[0].Cells["RStock"].Value.ToString();
cmd.ExecuteNonQuery();
MessageBox.Show("Success");
cmd.Parameters.Clear();
}
cn.Close();
}
【问题讨论】:
-
如果你想问一个问题,问一个问题。不要只是转储一些代码并希望获得最好的结果
-
代码只更新第一行。我想要的只是更新 datagridview 中的所有行。当我单击按钮时。我该怎么办?有什么问题?
-
有很多。
-
问题 1:由于 sql 命令中的字符串连接,您的代码容易受到 SQL 注入攻击。您已经使用了参数,因此请始终使用它们。
-
代码只更新第一行因为你没有做任何任何事情来更新其余部分,因为你用
Order_Datagridview.SelectedRows[0].Cells["id"].Value过滤你的命令在WHERE子句上。考虑先改变你的逻辑。
标签: c# sql sql-server datagridview