2017-02-28 136 views
1

我更新了使用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 [email protected]", conn)) 
      { 
       cmd.Parameters.AddWithValue("@label3", cmpname.Text); 
       int rows = cmd.ExecuteNonQuery(); 
      } 


     } 
    } 
    catch (Exception ex) 
    { 
     MessageBox.Show("Not Updated"); 
    } 
+1

只需在查詢中添加where子句 –

回答

2

你應該在這裏設置的where子句過濾哪些記錄應更新。 WHERE子句用於僅提取滿足指定標準的那些記錄。查看哪些濾波器基於id列下面的例子:

new SqlCommand("UPDATE companyDB SET [email protected] where id = @id", conn)) 

和:

cmd.Parameters.AddWithValue("@id", id.Text); 

雖然直接指定類型,並使用Value性能比AddWithValue越多越好:

cmd.Parameters.Add("@label3", SqlDbType.VarChar).Value = cmpname.Text; 

另請查看: Can we stop using AddWithValue() already?