我创建了一个简单的SQL数据库,该数据库具有一个表,tblCustomerInformation
和三列:
- firstName,
- lastname,
- 和电子邮件。
我正在尝试更新它时,当我在程序下方列出的代码运行时,该程序无能为力。
它不会崩溃,给我错误,它什么都不做。
我很确定我的UPDATE
语句是正确的。我不确定为什么此时不起作用。
using (SqlConnection Connection = new SqlConnection(@"Data Source=EWOODWARD-PCSQL2012; 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();
}
}
使用此。cmd.Parameters...
代码的排列不应混乱。将其基于查询中的布置。
using (SqlConnection Connection = new SqlConnection(@"Data Source=EWOODWARD-PCSQL2012; 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.AddWithValue("@ln", txtLastName.Text);
cmd.Parameters.AddWithValue("@em", txtEmail.Text);
cmd.Parameters.AddWithValue("@fn", txtFirstName.Text);
Connection.Open();
cmd.ExecuteNonQuery();
}
}
曾经遇到过这种错误。