首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ExecuteScalar零值错误

ExecuteScalar零值错误
EN

Stack Overflow用户
提问于 2014-05-07 07:45:46
回答 3查看 109关注 0票数 0

这是我的密码..。

代码语言:javascript
复制
    object o = DBExecuteScalar(myQuery);
    if ((int.parse(o.ToString())) <= 2 || (o is null))
    {
        // my task....
    }

在这段代码中,'o is null‘部分出现了错误。任何帮助如何处理这两种情况在单一的if语句..。我想要的是o的值应该是(null,0,1,2)。有什么帮助吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-05-07 07:50:25

在C#中,is运算符检查类型相等。您需要检查null是否为o == null

代码语言:javascript
复制
object o = DBExecuteScalar(myQuery);
if ((o == null) || (int.parse(o.ToString())) <= 2)
{
        // my task....
}

在尝试对其执行任何操作之前,还需要检查null。

票数 1
EN

Stack Overflow用户

发布于 2014-05-07 07:47:51

首先,要检查是否为null第一个条件。另外,int.Parse也不是必需的。正如RGraham所提到的,null并不是一种正确的方法,如何检查null。

代码语言:javascript
复制
 if (o == null || o == DBNull.Value || (int)o <= 2)
票数 1
EN

Stack Overflow用户

发布于 2014-05-07 07:47:53

当你倒转if中的条件时,它应该能工作。

在您的示例中,首先在对象o上调用ToString,但由于o为null,这将导致异常。当您反转条件的顺序时,将首先进行空检查。只有当第一部分为false时,才会对or (分部)的第二部分进行计算。这将防止异常发生。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23511791

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档