例外:对象引用未设置为对象的实例

时间:2011-03-09 11:36:06

标签: c# asp.net

我一直在使用代码,

  object amountObject = MySqlDAL.ExecuteQuerySingle(query);

        if (amountObject.Equals(System.DBNull.Value))
        {
            return amount;
        }

在某些方面我得到一个异常“对象引用未设置为对象的实例。”来自句子amountObject.Equals(System.DBNull.Value)。它适用于某些数据集。

可能是什么原因?任何人都可以帮帮我吗?

5 个答案:

答案 0 :(得分:2)

大概MySqlDAL.ExecuteQuerySingle正在返回null而不是System.DBNull.Value。很难知道这是你的期望中的错误还是ExecuteQuerySingle中的错误。

答案 1 :(得分:2)

尝试检查结果是否为空。

if (amountObject ==null || amountObject.Equals(System.DBNull.Value))          
{             
     return amount;         
} 

答案 2 :(得分:0)

有时查询不返回值,因此amountObject为空。

使用导致此失败的参数手动运行查询,您的SQL出现了问题。

答案 3 :(得分:0)

只需改变:
    if(amountObject.Equals(System.DBNull.Value))         {             退货金额;         }

于:
    if(amountObject!= null&& amountObject.Equals(System.DBNull.Value))         {             退货金额;         }

答案 4 :(得分:0)

您是否检查过amountObject是否为空?似乎MySqlDAL.ExecuteQuerySingle返回的值返回NULL。