我试图在一个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();
答案 0 :(得分:5)
ExecuteScalar()
返回null
。在您的情况下,如果intUserId
与现有用户不对应,则会返回null
。
切换到int?
以解决此问题:
int? value = (Int32?)(objCmd.ExecuteScalar());
现在,当数据库中存在value
时,您的变量intUserId
将设置为非空;否则,它将是null
。
答案 1 :(得分:0)
oconn = new SqlConnection(oSession.CONNECTION_STRING);
oconn.Open();
objCmd.CommandText = "select Rule_Approval_Selection from UserFile where uid=" + intUserID;
var x=objCmd.ExecuteScallar();
if (x!= null && DBNull.Value != x)
{
int value = (Int32)(objCmd.ExecuteScalar());
}
oconn.Close();
试试这个......