且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

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

更新时间:2022-08-13 10:37:08

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

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

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

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

本文转自左正博客园博客,原文链接:http://www.cnblogs.com/soundcode/archive/2012/10/08/2715153.html,如需转载请自行联系原作者