我正在尝试在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/

10-11 05:26