今天在补自己刚学.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 新发现
最新推荐文章于 2019-02-24 15:47:24 发布
本文介绍了一个.NET网站开发中遇到的问题,即使用SqlHelper的ExecuteNonQuery执行SELECT COUNT(*)语句时返回-1。文章解释了原因,并提供了解决方案:使用com.ExecuteScalar()获取正确的受影响行数。
2807

被折叠的 条评论
为什么被折叠?



