最近在写一个程序的时候用到ExecuteNonQuery()执行 select,结果总是返回-1(因为我想通过影响的行数来判断数据库是否已经存在该数据)。
虽然 ExecuteNonQuery 不返回任何行,但映射到参数的任何输出参数或返回值都会用数据进行填充。对于 UPDATE、INSERT 和 DELETE 语句,返回值为该命令所影响的行数。对于所有其他类型的语句,返回值为 -1。如果发生回滚,返回值也为 -1 。
后来的解决方案是,使用ExecuteScalar(),返回获得数据的第一行第一列,判断他的返回值是否为空,如果不为空说明有数据,返回true,反正返回flase。