C# & SQL Server : update not working

本文关键字:update not working Server SQL amp | 更新日期: 2023-09-27 18:18:44

我正在编写一些代码,这意味着在我的数据库中更新数据,由于某种原因,当我按下更新按钮时,我得到了这个错误:

ExecuteNonQuery: Connection property has not initialized.

这是我的代码,它是我的INSERT语句完美工作的副本,所以我不确定为什么这不工作。

private void button1_Click(object sender, EventArgs e)
{
   sqlCommand2.CommandText = @"UPDATE Personal_Details 
   SET Title = '" + comboBox1.Text.Trim() + "', FIRSTNAME = '" +Txt_FirstName.Text.Trim()+ "', MIDDLENAME = '" + mIDDLENAMETextBox.Text.Trim() + "', '" + sURNAMETextBox.Text.Trim() + "', '" + cITYTextBox.Text.Trim() + "', '" + eMAILTextBox.Text.Trim() + "' WHERE PersonID = '"+personIDTextBox+"'";
   sqlConnection1.Open();
   sqlCommand2.ExecuteNonQuery();
   sqlConnection1.Close();
}

C# & SQL Server : update not working

您需要在调用ExecuteNonQuery

之前添加这一行
sqlCommand2.Connection = sqlConnection1;

从这一部分我真的建议你阅读参数化查询和使用语句

我需要从Windows服务中解脱出来,所以我帮你做了…对史蒂夫的回答进行扩展……现在去阅读一下为什么参数化查询比你的方法更好(提示:安全性),并阅读一下using语句为你做了什么(提示:为你关闭并解除连接)。

编辑:

string mySql = @"UPDATE Personal_Details SET Title = @myTitle, FIRSTNAME = @myFirstName, MIDDLENAME = @myMiddleName, SURNAME = @mySurname, CITY = @myCity, EMAIL = @myEmail WHERE PersonID = @myPersonId";
using (SqlConnection conn = new SqlConnection(ConnectionString))
{
    using (SqlCommand cmd = new SqlCommand(mySql, conn))
    {
        cmd.Parameters.AddWithValue("@myTitle", comboBox1.Text.Trim());
        cmd.Parameters.AddWithValue("@myFirstName", Txt_FirstName.Text.Trim());
        cmd.Parameters.AddWithValue("@myMiddleName", mIDDLENAMETextBox.Text.Trim());
        cmd.Parameters.AddWithValue("@mySurname", sURNAMETextBox.Text.Trim());
        cmd.Parameters.AddWithValue("@myCity", cITYTextBox.Text.Trim());
        cmd.Parameters.AddWithValue("@myEmail", eMAILTextBox.Text.Trim());
        cmd.Parameters.AddWithValue("@myPersonId", personIDTextBox.Text.Trim());
        conn.Open();
        int numberOfAffectedRows = command.ExecuteNonQuery();
    }
}

您这边没有提供连接字符串。

        var sqlConnection1 = new SqlConnection(@"give your connection string here");
        SqlCommand  sqlCommand2 = new SqlCommand();
        sqlCommand2.CommandText = @"update query";
        sqlCommand2.Connection = sqlConnection1;
        sqlConnection1.Open();
        sqlCommand2.ExecuteNonQuery();
        sqlConnection1.Close();

使用参数以获得最佳结果。但是如果你不想使用参数,你可以使用下面的方法:-

        string connetionString = null;
        SqlConnection cnn ;
        SqlCommand cmd ;
        string sql = null;
        connetionString = "Data Source=ServerName;Initial Catalog=DatabaseName;User ID=UserName;Password=Password";
        sql = @"UPDATE Personal_Details 
    SET Title = '" + comboBox1.Text.Trim() + "', FIRSTNAME = '" +Txt_FirstName.Text.Trim()+ "', MIDDLENAME = '" + mIDDLENAMETextBox.Text.Trim() + "', '" + sURNAMETextBox.Text.Trim() + "', '" + cITYTextBox.Text.Trim() + "', '" + eMAILTextBox.Text.Trim() + "' WHERE PersonID = '"+personIDTextBox+"'";
        cnn = new SqlConnection(connetionString);
        try
        {
            cnn.Open();
            cmd = new SqlCommand(sql, cnn);
            cmd.ExecuteNonQuery();
            cmd.Dispose();
            cnn.Close();
        }
        catch (Exception ex)
        {
            MessageBox.Show("Error"); 
        }

还在顶部添加:using System.Data.SqlClient;