我试图在一个 int 变量中获取 sql 查询的结果,但我收到了对象空引用错误。有人可以指导我吗。
oconn = new SqlConnection(oSession.CONNECTION_STRING);
oconn.Open();
objCmd.CommandText = "select Rule_Approval_Selection from UserFile where uid=" + intUserID;
int value = (Int32)(objCmd.ExecuteScalar());
oconn.Close();
最佳答案
当命令没有行时,
ExecuteScalar()
返回 null
。在您的情况下,当 intUserId
不对应于现有用户时,将返回 null
。
切换到 int?
来处理这个问题:
int? value = (Int32?)(objCmd.ExecuteScalar());
现在,当数据库中存在 intUserId
时,您的变量 value
将被设置为非空;否则,它将是 null
。
关于c# - ExecuteScalar() 的返回值错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40787115/