C# Excute标量eror
C#:C# Excute标量eror,c#,sql-server,C#,Sql Server,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.ExecuteSc
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();
错误:
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:尚未初始化连接属性
描述:在执行过程中发生未处理的异常
当前的web请求。请查看堆栈跟踪以了解更多信息
有关错误的信息及其在代码中的来源
异常详细信息:System.InvalidOperationException:ExecuteScalar:
尚未初始化连接属性
您没有为该命令提供连接。使用
getlev.Connection = c;
执行ExecuteScalar()
之前
或者使用获取连接的构造函数重载:
SqlCommand getlev = new SqlCommand(
"SELECT level FROM [User] WHERE Username = @username",
c);
您需要为第一个SqlCommand提供连接参数:
SqlCommand getlev = new SqlCommand("SELECT level FROM [User] WHERE Username = @username", c);
c.Close(); // Remove this
lev++;
SqlCommand lvup= new SqlCommand("UPDATE [User] SET level = @lev WHERE Username = @username", c);
在将连接传递给第二个SqlCommand之前,已关闭连接:
SqlCommand getlev = new SqlCommand("SELECT level FROM [User] WHERE Username = @username", c);
c.Close(); // Remove this
lev++;
SqlCommand lvup= new SqlCommand("UPDATE [User] SET level = @lev WHERE Username = @username", c);
显示
c
的定义错误消息是不言自明的。在getlev SqlCommand对象上设置Connection属性。您可以像Seconde一样将Connection参数添加到firstSqlCommand
,并且如果要执行de SecondeSqlCommande
可以在一次行程中自动完成此操作:update[User]set lev+=1 output inserted.lev,其中Username=@Username
-返回新的lev。