如何判断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 != null &&objResult.ToString() != ""),可能要这么判断才对。我试了下,是这样。

你可能感兴趣的:(execute)