Asp.net中利用ExecuteNonQuery()执行存储过程返回-1解决方案

2009-08-22 14:06 by chenkai, 544 阅读, 1 评论, 收藏编辑 Asp.net中利用ExecuteNonQuery()方法执行sql语句,并返回影响行数,注意sql语句针对的是增删改三个操作,返回影响行数总是-1:在MSDN上这样解释如果不是同一类型(增删改)的sql语句 执行操作返回-1.
当前存储过程如下:

复制代码
复制代码
 1 -- 创建个人插入Proc
 2 -- 分开参数实现
 3 create   proc  AddPersion_Proc
 4 @name   varchar ( 80 ),
 5 @password   varchar ( 20 ),
 6 @realname   varchar ( 20 ),
 7 @contractadd   varchar ( 100 ),
 8 @phonenum   varchar ( 24 ),
 9 @email   varchar ( 50 ),
10 @utypeid   varchar ( 50 ) -- 用户类型
11 as
12
13 set  nocount  on -- 不返回影响行数
14
15 declare   @gettypeid   int
16
17 select   @gettypeid = id  from  usertype  where  utype = @utypeid
18 if ( @utypeid = ' 个人用户 ' )
19 insert   into  userinfor (typeid,username,password,realname,email,address,telenum)
20 values ( @gettypeid , @name , @password , @realname , @email , @contractadd , @phonenum )
21
22 -- End AddPersion_proc
复制代码
复制代码

执行结果返回到程序总是显示为-1,虽然返回为-1但数据仍然能够插入,数据库中添加一条记录

其 实问题关键是在这:数据库能够在为我们执行增删改操作并返回影响行数前提是: 默认的 Set Nocount off 是开启的,上面纯粹出于个人习惯直接写了 set nocount on 这样导致无法返回整个存储过程执行后的结果,直接删除set nocount on使用默认情况的下设置,即能返回显示影响的行数.

本文转自左正博客园博客,原文链接:http://www.cnblogs.com/soundcode/archive/2012/10/08/2715153.html ,如需转载请自行联系原作者
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值