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”这是一个非常糟糕的做法。如果你错过了一个@,你会得到一个有效的声明。如果你犯了错误,你想要一个错误。不要像数据库字段那样命名变量。