2

我已经彻底搜索过,但找不到将SET我的列数据转换为我使用 SQLUPDATE语句初始化的变量的方法。

这是导致问题的一段代码:

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();

请指导我如何更正上面评论的行。

4

2 回答 2

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();
于 2012-04-06T12:24:38.350 回答
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。我@maxId在你的 SQL 中调用它。然后,您需要为该命令提供该参数的值。这是通过Parameters.AddWithValue()方法完成的。

于 2012-04-06T12:23:33.153 回答