c# - ExecuteScalar() 的返回值错误

标签 c# sql asp.net

我试图在一个 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/

相关文章:

sql - 从 GString 转义点

ASP.NET Web API 2 Bearer Token 重定向到登录页面而不是返回 401

asp.net - 如何在 vb.net 中做正则表达式

c# - 测试中无法连接网络

c# - 从 PropertyGrid 集合属性中删除 "..."按钮

sql - Sybase 插入一个空格来代替空字符串 ''

sql - 如何使用带有日期条件的选择?

c# - 如何防止用户从多个位置或同一台电脑上的不同浏览器登录

c# - Java 的 Canvas 对象在 C# 中的等价物是什么?

c# - ASP.NET MVC 超链接一个项目到另一个项目