【问题标题】:ExecuteScalar null value errorExecuteScalar 空值错误
【发布时间】:2014-05-07 07:45:46
【问题描述】:

这是我的代码..

    object o = DBExecuteScalar(myQuery);
    if ((int.parse(o.ToString())) <= 2 || (o is null))
    {
        // my task....
    }

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

【问题讨论】:

    标签: c# executescalar


    【解决方案1】:

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

    object o = DBExecuteScalar(myQuery);
    if ((o == null) || (int.parse(o.ToString())) <= 2)
    {
            // my task....
    }
    

    您还需要检查 null 您尝试对其执行任何操作

    【讨论】:

      【解决方案2】:

      当您反转 if 中的条件时,它应该可以工作。

      在您的情况下,首先在对象 o 上调用 ToString。但是因为 o 是 null 这将导致异常。 当您颠倒条件的顺序时,nullcheck 将是第一个。 or (||) 的第二部分仅在第一部分为假时计算。这将防止异常发生

      【讨论】:

        【解决方案3】:

        与 ||首先评估运算符的第一个条件 - 您想首先检查是否为空。 也不需要 int.Parse 。正如 RGraham 所说,null 不是检查 null 的正确方法。

         if (o == null || o == DBNull.Value || (int)o <= 2)
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-03-26
          • 1970-01-01
          相关资源
          最近更新 更多