C# SQL Update CommandText and Parameters



我创建了一个简单的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();
    }
}

曾经遇到过这种错误。

最新更新