【发布时间】:2016-05-24 23:39:19
【问题描述】:
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:连接属性尚未初始化。
描述:执行过程中发生了未处理的异常 当前的网络请求。请查看堆栈跟踪以获取更多信息 有关错误的信息以及它在代码中的来源。
异常详细信息:System.InvalidOperationException:ExecuteScalar: 连接属性尚未初始化。
【问题讨论】:
-
显示
c的定义 -
错误信息一目了然。在 getlev SqlCommand 对象上设置 Connection 属性。
-
可以像Seconde一样给first
SqlCommand添加连接参数,如果要执行de secondeSqlCommande一定不能关闭连接 -
可以在一次行程中自动执行此操作:
update [User] set lev += 1 output inserted.lev where Username = @username- 返回新的 lev。
标签: c# sql-server