关于ExecuteNonQuery()执行成功却返回-1的问题

原文引用


对于增删改数据,一般判断ExecuteNonQuery()是否大于0


 mark= Comm.ExecuteNonQuery()>0?true:false;

 

注意:关于ExecuteNonQuery()执行成功却返回-1的问题

 

通过ExecuteNonQuery()的返回值来判断操作数据库的成功与否是可以的.但是要分情况.


1.ExecuteNonQuery() 不执行存储过程.


此时如果对数据库执行,插入,更新,删除操作,返回的是 受影响的行数.(及一个大于等于0的整数)


2.ExecuteNonQuery() 执行查询不返回影响的行数.


2.ExecuteNonQuery   执行存储过程.


[1].存储过程有返回值(传出参数)

    (1).把数据库中受影响的行数赋给返回值,这是得到的返回值是受影响的函数(大于或等于0的整数).


    (2).把某个值赋给返回值.


[2].存储过程没有返回值


    执行成功后返回 -1.


(没有返回值的存储过程理应 返回 受影响的行数 (执行 增删改) 但是.但我们在ado.net中执行存储过程的时候,dotnet 自动为给了存储过程一个默认值:set nocount on;
所以给我们的感觉是执行存储过程默认返回 -1  )


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值