我使用c#文本框更新了sql数据库,但所有记录都更新了我在该文本框中输入的值。我做错了。
我的代码
private void btnsave_Click(object sender, EventArgs e)
{
try
{
string connectionString = (@"Data Source = M2\SQL2016; Initial Catalog = inventoryDB; Integrated Security = True");
using (SqlConnection conn = new SqlConnection(connectionString))
{
conn.Open();
using (SqlCommand cmd =
new SqlCommand("UPDATE companyDB SET compname=@label3", conn))
{
cmd.Parameters.AddWithValue("@label3", cmpname.Text);
int rows = cmd.ExecuteNonQuery();
}
}
}
catch (Exception ex)
{
MessageBox.Show("Not Updated");
}
答案 0 :(得分:2)
您应在此处设置where子句以过滤应更新的记录。 WHERE子句仅用于提取满足指定条件的记录。请参阅以下示例,该示例基于id列进行过滤:
new SqlCommand("UPDATE companyDB SET compname=@label3 where id = @id", conn))
和
cmd.Parameters.AddWithValue("@id", id.Text);
虽然直接指定类型并使用Value
属性比AddWithValue
更好:
cmd.Parameters.Add("@label3", SqlDbType.VarChar).Value = cmpname.Text;