今天在补自己刚学.NET的时候做的一个网站的漏洞的时候,一个地方要查询数据库,CS页面执行Select后SqlHelper的ExecuteNonQuery返回值总是-1,而我直接在数据库中执行select COUNT(*) FROM tablename的时候却返回了正常受影响的行数,呵呵,纳闷了。。
后来看了下MSDN,才发现:
对于 Update、Insert 和 Delete 语句,返回值为该命令所影响的行数。对于所有其他类型的语句,返回值为 -1。如果发生回滚,返回值也为 -1。
恍然大悟!
我的解决方法:
sql语句还这样写:select COUNT(*) FROM tablename
然后不用ExecuteNonQuery来执行,而用 Int32.Parse(com.ExecuteScalar().ToString()) 来获取正确的受影响的行数。
搞定!
ExecuteNonQuery 新发现
最新推荐文章于 2018-04-25 20:27:00 发布