日期:2014-05-18  浏览次数:20618 次

关于sqlcom.ExecuteNonQuery()的问题
在执行sqlcom.ExecuteNonQuery()的时候,是不是返回受影响的行数?
result   =   sqlcom.ExecuteNonQuery();
                                if   (result   <   1)
                                {
                                        return   false;
                                }
                                return   true;
为什么就是返回false呢,明明有保存数据啊

------解决方案--------------------
对于 UPDATE、INSERT 和 DELETE 语句,返回值为该命令所影响的行数。对于其他所有类型的语句,返回值为 -1。

------解决方案--------------------
ls正解
------解决方案--------------------
如果发生回滚,返回值也为 -1,呵呵
------解决方案--------------------
这个你在网上搜索就能找到答案的
这个函数执行数据更新操作(update,delete,add)返回都是影响函数,如果是select操作不应该用这个来进行而应该使用excutescalar或者excutedatareader
------解决方案--------------------
您可以使用 ExecuteNonQuery 来执行目录操作(例如查询数据库的结构或创建诸如表等的数据库对象),或通过执行 UPDATE、INSERT 或 DELETE 语句,在不使用 DataSet 的情况下更改数据库中的数据。

虽然 ExecuteNonQuery 不返回任何行,但映射到参数的任何输出参数或返回值都会用数据进行填充。

对于 UPDATE、INSERT 和 DELETE 语句,返回值为该命令所影响的行数。对于所有其他类型的语句,返回值为 -1。如果发生回滚,返回值也为 -1。

-------------------msdn标准解释
------解决方案--------------------
NonQuery就是非查询的意思得嘛

在你select的时候是不会返回行数的。只会返回-1

楼主知道了吧?
------解决方案--------------------
你的存储过程没有任何返回值,sqlcom.ExecuteNonQuery总为-1
------解决方案--------------------
楼上的说的对,存储过程不会主动给你返回值所以。。。。