我創建了一個具有一個表,tblCustomerInformation
,三列一個簡單的SQL數據庫:C#SQL更新CommandText和Parameters
- 名字,
- 姓氏,
- 和電子郵件。
我試圖然而,更新它,當我跑,我列出下面的程序不執行任何代碼。
它不會崩潰,給我錯誤,它什麼都不做。
我很確定我的UPDATE
聲明是正確的。我不確定爲什麼在這一點上這不起作用。
using (SqlConnection Connection = new SqlConnection(@"Data Source=EWOODWARD-PC\SQL2012; Initial Catalog=CustomerGUI; Integrated Security=True"))
{
using (SqlCommand cmd = Connection.CreateCommand())
{
cmd.CommandText = "UPDATE tblCustomerInformation SET LastName = @ln, Email = @em WHERE (FirstName = @fn)";
//cmd.Parameters.Add("@ln", SqlDbType.NVarChar);
//cmd.Parameters["@ln"].Value = txtLastName.Text;
//cmd.Parameters.Add("@em", SqlDbType.NVarChar);
//cmd.Parameters["@em"].Value = txtEmail.Text;
//cmd.Parameters.Add("@fn", SqlDbType.NVarChar);
//cmd.Parameters["@fn"].Value = txtFirstName.Text;
cmd.Parameters.AddWithValue("@ln", txtLastName.Text);
cmd.Parameters.AddWithValue("@fn", txtFirstName.Text);
cmd.Parameters.AddWithValue("@em", txtEmail.Text);
Connection.Open();
cmd.ExecuteNonQuery();
}
}
如果您手動運行它,FirstName = @fn會得到滿足嗎?作爲最後的手段捕獲SQL調用的跟蹤。 –
運行此操作時,調用堆棧中的任何位置是否有異常處理程序?你確定沒有錯誤,只是被吞噬? – Crowcoder
您將什麼值放入文本框中,數據庫中現有的行看起來像是您想要更新的內容? – pilotcam