SQL Server C# SQL更新命令文本和参数

ajsxfq5m  于 2023-02-07  发布在  C#
关注(0)|答案(1)|浏览(171)

我创建了一个简单的SQL数据库,它有一个表tblCustomerInformation和三列:

  • 名字,
  • 姓氏,
  • 和电子邮件。

我试图更新它,但是当我运行下面列出的代码时,程序什么也不做。
它不会崩溃,给予我错误,它只是什么也不做。
我相当肯定我的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();
    }
}
ee7vknir

ee7vknir1#

使用此函数,cmd.Parameters...代码的排列不应混乱,应基于查询中的排列。

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.AddWithValue("@ln", txtLastName.Text);
        cmd.Parameters.AddWithValue("@em", txtEmail.Text);
        cmd.Parameters.AddWithValue("@fn", txtFirstName.Text);

        Connection.Open();

        cmd.ExecuteNonQuery();
    }
}

曾经遇到过这种错误。

相关问题