判断SQL 中SELECT 语句所影响的行
2011-01-11 09:50
218 查看
首先看看ExecuteNonQuery()与ExecuteNonQuery()的返回值。
SqlCommand.ExecuteNonQuery() 方法仅对于 UPDATE、INSERT 和 DELETE 语句,返回值为该命令所影响的行数。对于所有其他类型的语句,返回值为 -1。如果发生回滚,返回值也为 -1
SqlCoCommand.ExecuteScalar ()方法执行查询,并返回查询所返回的结果集中第一行的第一列,忽略额外的列或行。如果为聚合查询则返回一个聚合值。
所以在查询表中是否有(某条)数据的时候,一定不能用 cmd.ExecuteNonQuery()通过返回值是否大于0来判断。
解决方案:
1. SqlCoCommand.ExecuteScalar ()方法 中使用 聚合查询
cmd.CommandText = " select count(*) from users where id = sa and password=123;"
int count = (int)cmd.ExecuteScalar() ;
If(count>=1)
return true;
else
return false;
2. 用ExecuteReader()方法返回一个reader
cmd.CommandText = " select count(*) from users where id = sa and password=123;"
SqlDataReader dreader = Cmd.ExecuteReader();
if(dreader.Read()==false)
return false ;
else
return true ;
SqlCommand.ExecuteNonQuery() 方法仅对于 UPDATE、INSERT 和 DELETE 语句,返回值为该命令所影响的行数。对于所有其他类型的语句,返回值为 -1。如果发生回滚,返回值也为 -1
SqlCoCommand.ExecuteScalar ()方法执行查询,并返回查询所返回的结果集中第一行的第一列,忽略额外的列或行。如果为聚合查询则返回一个聚合值。
所以在查询表中是否有(某条)数据的时候,一定不能用 cmd.ExecuteNonQuery()通过返回值是否大于0来判断。
解决方案:
1. SqlCoCommand.ExecuteScalar ()方法 中使用 聚合查询
cmd.CommandText = " select count(*) from users where id = sa and password=123;"
int count = (int)cmd.ExecuteScalar() ;
If(count>=1)
return true;
else
return false;
2. 用ExecuteReader()方法返回一个reader
cmd.CommandText = " select count(*) from users where id = sa and password=123;"
SqlDataReader dreader = Cmd.ExecuteReader();
if(dreader.Read()==false)
return false ;
else
return true ;
相关文章推荐
- 判断SQL 中SELECT 语句所影响的行数
- 判断SQL 中SELECT 语句 所影响的行数
- 判断mysqli函数里的sql语句是否有错和影响行数
- ADO判断SQL语句影响行
- SQL 常用判断语句
- SQL语句判断某表是否存在
- 【SQL】根据插入语句条件判断插入哪张表,多表插入,2017年
- SQL语句中的判断(条件语句)
- sql语句判断两个时间段是否有交集 <非原创>
- SQL判断语句用法和多表查询
- 在SQL语句中,如何判断汉字和字符?
- SQL判断一个字段是否为空值条件语句
- 5年前给我职业生涯带来重大影响力的SQL语句(您SQL到了什么境界了)
- Sql语句中使用Case When Then判断
- oracle中sql语句中判断blob的大小
- SQL语句影响性能查看语句
- SQL语句Where中使用别名作为判断条件
- SQL 查询语句 IIF()处理条件判断
- SQL:判断某些元素是否存在及创建的SQL语句
- SQL常用判断检测语句