sql server ExecuteNonQuery()返回受影响行数不适用select语句

SqlCommand.ExecuteNonQuery 方法对链接执行 Transact-SQL 语句并返回受影响的行数。

对于 UPDATE、INSERT 和 DELETE 语句,返回值为该命令所影响的行数。对于全部其余类型的语句,返回值为 -1。若是发生回滚,返回值也为 -1

因此在查询表中是否有(某条)数据的时候,必定不能用select sql语句+ cmd.ExecuteNonQuery(),经过判断返回值是否大于0来判断。

解决方案:
1.sql

SqlCeCommand.ExecuteScalar 方法 ( + 聚合查询)post

 

执行查询,并返回查询所返回的结果集中第一行的第一列。忽略额外的列或行。 例如一个聚合值。blog

cmd.CommandText = "select count(*) from users where id = 10000;"  例如一个聚合值。cmd

int count = (int)cmd.ExecuteScalar() ;it

2. 用ExcuteReader()方法返回一个readerclass

if(reader.Read() == false) { ...}select

相关文章
相关标签/搜索