我已经彻底搜索过了,但无法找到SET
我的列数据到我使用SQL UPDATE
语句初始化的变量的方法。
以下是导致问题的代码:
int maxId;
SqlConnection dataConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["RegConnectionString"].ConnectionString) ;
SqlCommand dataCommand = new SqlCommand("select max(UserID) from Registration", dataConnection) ;
dataConnection.Open();
maxId = Convert.ToInt32(dataCommand.ExecuteScalar());
string Id = maxId.ToString();
// this next line is not working
SqlCommand _setvin = new SqlCommand("UPDATE Registration SET VIN=maxId , Voted=0 WHERE UserID=maxId", dataConnection);
_setvin.ExecuteNonQuery();
dataConnection.Close();
请指导我如何纠正上面的注释行。
答案 0 :(得分:2)
也许是这样的:
SqlCommand _setvin = new SqlCommand("UPDATE Registration SET VIN=@maxId, Voted=0 WHERE UserID=@maxId", dataConnection);
_setvin.Parameters.Add("@maxId", SqlDbType.Int).Value = maxId;
_setvin.ExecuteNonQuery();
答案 1 :(得分:1)
我认为你正在尝试这样做:
var _setvin = new SqlCommand("UPDATE Registration SET VIN = @maxId, Voted = 0 WHERE UserID = @maxId", dataConnection);
_setvin.Parameters.AddWithValue("@maxId", maxId);
_setvin.ExecuteNonQuery();
您需要先更改SQL语句,以包含maxId
的参数;我在你的SQL中调用@maxId
。然后,您需要为该命令提供该参数的值。这是通过Parameters.AddWithValue()
方法完成的。