Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 更新表时发生System.Data.SqlClient.SqlException_C#_Sql_Sql Server_Database_Sql Update - Fatal编程技术网

C# 更新表时发生System.Data.SqlClient.SqlException

C# 更新表时发生System.Data.SqlClient.SqlException,c#,sql,sql-server,database,sql-update,C#,Sql,Sql Server,Database,Sql Update,为了更新Customer/PartyId我要求用户填写CP\u id和表单的其他元素,然后我根据CP\u id更新数据库中的数据: if (CP_id.Text != " ") { string cpid=CP_id.Text; string query = "Update tbl_partyinfo set Name = @Name, Addrss = @Addrss, Cntct_No = @Cntct_No where CP_id = cpid"; using (

为了更新
Customer/PartyId
我要求用户填写
CP\u id
和表单的其他元素,然后我根据
CP\u id
更新数据库中的数据:

if (CP_id.Text != " ")
{
    string cpid=CP_id.Text;
    string query = "Update tbl_partyinfo set Name = @Name, Addrss = @Addrss, Cntct_No = @Cntct_No where CP_id = cpid";

    using (SqlConnection connection1 = new SqlConnection(conn))
    {
        connection1.Open();

        using (SqlCommand insertCommand = new SqlCommand(query, connection1)) 
        {
            insertCommand.Parameters.Add("@Name", SqlDbType.VarChar).Value = txtname.Text;
            insertCommand.Parameters.Add("@Addrss", SqlDbType.VarChar).Value = txtAddrss.Text;
            insertCommand.Parameters.Add("@Cntct_No", SqlDbType.VarChar).Value = txtcontact.Text;

            //make sure you open and close(after executing) the connection
            var rowsaffected = insertCommand.ExecuteNonQuery();

            connection1.Close();

            MessageBox.Show("Id no."+CP_id.Text +" Updated.");
         }
     }
}
else
{
    MessageBox.Show("Please identify Id before updating");
}
但我有一个错误:

System.Data.dll中发生类型为“System.Data.SqlClient.SqlException”的未处理异常

其他信息:列名“cpid”无效

我得到这个错误,但没有替代方法来获得这样的功能

CP_id=cpid


这需要是另一个像这样的绑定参数:
CP_id=@cpid
,您需要另一行添加此参数及其值。你已经为其他三个做了,为第四个做也不会太难。

我很难想象你通过适当的绑定插入了三个参数,一个假设“它只是神奇地工作”。为什么您认为cpid参数的工作原理与其他三个参数完全不同?@nvoigt更新了问题代码!但现在它会更新表格的所有行。在得到答案后,请不要更改您的问题。如果您有新问题,请提出新问题。@svick将其更改为反映,我在评论中建议的内容已经尝试过,但没有任何价值。无论如何,我已经完成了itI,我在发布它之前已经尝试过,但影响了所有行,另一个灾难“CP_id=@CP_id”这是一个非常糟糕的做法。如果你错过了一个@,你会得到一个有效的声明。如果你犯了错误,你想要一个错误。不要像数据库字段那样命名变量。