数据查询需要注意的问题

提出问题

cmd.ExecuteNonQuery()不是返回受影响的行数吗?我的sql语句是”select * from tbUserInfo where userName=’wang’”,断点跟踪确实查找到一条数据(sqlserver中显示受影响行数为1),为甚么cmd.ExecuteNonQuery()却是-1呢?不是应该是1吗?

解答

对于大多数小伙办认为cmd.ExecuteNonQuery()返回的就是受影响的行数,其实这一表达是不准确的,
对于 UPDATE、INSERT 和 DELETE 语句,返回值为该命令所影响的行数。对于所有其他类型的语句,返回值为 -1。如果发生回滚,返回值也为 -1。
除此之外,我们还可以用 Convert.ToInt32(cmd.ExecuteScalar())来判断
select * 之类的查询语句
也可以先找到table, 在判断table的查询出来的行数.

你可能感兴趣的:(数据库,B/S)