C#:
int lev;
SqlCommand getlev = new SqlCommand("SELECT level FROM [User] WHERE Username = @username");
getlev.Parameters.AddWithValue("@username", txtuser.Text);
c.Open();
lev = (int)getlev.ExecuteScalar();
c.Close();
lev++;
SqlCommand lvup= new SqlCommand("UPDATE [User] SET level = @lev WHERE Username = @username", c);
lvup.Parameters.AddWithValue("@lev",lev);
lvup.Parameters.AddWithValue("@username", txtuser.Text);
c.Open();
lvup.ExecuteNonQuery();
c.Close();
错误:
ExecuteScalar:尚未初始化Connection属性。
描述:执行期间发生了未处理的异常 当前的网络请求。请查看堆栈跟踪了解更多信息 有关错误的信息以及它在代码中的起源。
异常详细信息:System.InvalidOperationException:ExecuteScalar: 连接属性尚未初始化。
答案 0 :(得分:2)
您没有为命令提供连接。使用
getlev.Connection = c;
在执行ExecuteScalar()
之前。
或者使用接受连接的构造函数重载:
SqlCommand getlev = new SqlCommand(
"SELECT level FROM [User] WHERE Username = @username",
c);
答案 1 :(得分:2)
您需要为第一个SqlCommand提供连接参数:
grunt-ts
在将连接传递给第二个SqlCommand之前关闭了连接:
SqlCommand getlev = new SqlCommand("SELECT level FROM [User] WHERE Username = @username", c);