C# 更新数据库时会给出;无法绑定多部分标识符。”;错误
我正在尝试更新数据库表中的BookingID。它以前是C# 更新数据库时会给出;无法绑定多部分标识符。”;错误,c#,sql,sql-server,C#,Sql,Sql Server,我正在尝试更新数据库表中的BookingID。它以前是null。cID是包含预定义ID的字符串 我得到的错误是无法绑定多部分标识符“x”;x是cID 多谢各位 using (SqlConnection connection = new SqlConnection(connectionString)) { String sql = string.Format("UPDATE CounselorDB SET BookingID = @BookingID WHERE Coun
null
。cID是包含预定义ID的字符串
我得到的错误是无法绑定多部分标识符“x”;x是cID
多谢各位
using (SqlConnection connection = new SqlConnection(connectionString))
{
String sql = string.Format("UPDATE CounselorDB SET BookingID = @BookingID WHERE CounselorID = " + cID);
SqlCommand cmd = new SqlCommand(sql, connection);
cmd.CommandType = CommandType.Text;
cmd.Connection = connection;
cmd.Parameters.AddWithValue("@BookingID", getBookingID());
connection.Open();
cmd.ExecuteNonQuery();
}
你可以试试这个:
using (SqlConnection connection = new SqlConnection(connectionString))
{
String sql = "UPDATE CounselorDB "+
"SET BookingID = @BookingID "+
"WHERE CounselorID = @CounselorID";
SqlCommand cmd = new SqlCommand(sql, connection);
cmd.CommandType = CommandType.Text;
cmd.Connection = connection;
cmd.Parameters.AddWithValue("@BookingID", getBookingID());
cmd.Parameters.AddWithValue("@CounselorID", cID);
connection.Open();
cmd.ExecuteNonQuery();
}
您也应该参数化该值。仍然给出了相同的错误getBookingID()和cID的值是什么?getBookingID返回一个整数。它进入表格并给出最后使用的值+1。cID是从另一个表中读入的字符串,该表给出了“无效的列名'cID.”。由于
cID
包含consuller id
的值,我看不出问题出在哪里。我的意思是为什么cID
必须与列名关联?它是参数@consulterid
的值。我不是吗?是的,我有另一个方法设置了从不同的表(consultdb)读取随机的consultID,但是值是相同的。