如何判断ExecuteScalar()得到的结果是否有记录

对于ExecuteScalar如何判断得到的结果是否有记录呢,我找到3种方法

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

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

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

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

原文地址:https://www.cnblogs.com/tuyile006/p/541749.html