我正在尝试在int变量中获取sql查询的结果,但是我正在获取对象null引用错误。有人可以指导我吗?
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());
现在,当数据库中存在
value
时,您的变量intUserId
将设置为非空;否则为null
。关于c# - ExecuteScalar()的返回值错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40787115/