关于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
------解决方案--------------------楼上的说的对,存储过程不会主动给你返回值所以。。。。