判断ExecuteScalar()是否返回结果

ExecuteScalar()返回的是首行首列的值,一般用于执行这类查询

SELECT COUNT(*)FROM TABLE

返回的类型是 OBJECT,如果数据库中没有任何记录时,如何判断呢?以下是方案:

其一、调用Convert的IsDBNull来判断
    object objResult=tempCmd.ExecuteScalar();
     if(objResult!=null && Convert.IsDBNull(objResult))

其二,改变sql语句利用sql中的isnull函数,如下
"select isnull(max(id),0) from employees"如果为空就返回0这个值

这里一个小技巧就是用max来得到值null,因为isnull是当值为null时候触发的,没有记录时候用max就可以将值变为null

另外可以 通过ExecuteNonQuery() 返回一个Int,表示受影响的行数,只对insert,delete,update返回受影响行数
用这个是否为0来判断(这个方法没有试验过)

如果是Access的话,     if(objResult.ToString() != ""),可能要这么判断才对。我试了下,是这样。

原文地址:https://www.cnblogs.com/superfeeling/p/2128663.html