博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Asp.net中利用ExecuteNonQuery()执行存储过程返回-1解决方案
阅读量:6341 次
发布时间:2019-06-22

本文共 1093 字,大约阅读时间需要 3 分钟。

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
,如需转载请自行联系原作者
你可能感兴趣的文章
WinForm------Reflector反编译工具下载
查看>>
HTML5 <Audio>标签API整理(一)
查看>>
MyBatis绑定错误[Invalid bound statement (not found)]
查看>>
SQL Server:移动系统数据库
查看>>
(转)Linux下增加交换分区的大小
查看>>
如何利用迅雷下载百度云
查看>>
关于程序中用到的脚本
查看>>
Oracle RAC 并发与架构
查看>>
Wireshark抓包工具
查看>>
curl常用选项详解
查看>>
js中的json对象和字符串之间的转化
查看>>
【番外篇】ASP.NET MVC快速入门之免费jQuery控件库(MVC5+EF6)
查看>>
python小细节
查看>>
苹果iOS强制HTTPS迫在眉睫,距离2017年只剩1天,准备好了么?
查看>>
Mybatis源码分析之SqlSessionFactory(一)
查看>>
Python学习--08函数式编程
查看>>
初步了解php,实现注册及登录
查看>>
php的静态化
查看>>
asp.net获取请求的协议头是否启动了SSL(Https)
查看>>
编程书籍阅读随谈(第二篇)
查看>>