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