基于C#中的类SqlCommand对象调用SQLServer存储过程时,存储过程执行成功,但是对象方法ExecuteNonQuery()返回-1
2015-11-25 16:44
1081 查看
问题如题。
【下面是一个例子】
1、存储过程完成的功能是:插入insert一条记录,相同主键的记录存在时执行更新update的操作。存储过程正常执行的返回值是1.(不过本文提到的问题和这个返回值没关系。)
2、在另一个.cs文件中使用 SqlCommand对象 调用方法ExecuteNonQuery(),获取操作影响的行数。
【现象】
正常应该返回大于0的数,但是返回值却是 -1.
【解决】
存储过程中,多了一条语句:SET NOCOUNT ON;
该语句阻止存储过程返回信息中包含受影响行数的信息,以提高性能。
去掉该语句,标题提到的问题就解决了。
【备注】
这个问题比较low,只是被它坑了一小时,这里mark一下。关于SET NOCOUNT ON;的含义,可以参考:http://www.cnblogs.com/lmfeng/archive/2011/10/12/2208821.html
【下面是一个例子】
1、存储过程完成的功能是:插入insert一条记录,相同主键的记录存在时执行更新update的操作。存储过程正常执行的返回值是1.(不过本文提到的问题和这个返回值没关系。)
2、在另一个.cs文件中使用 SqlCommand对象 调用方法ExecuteNonQuery(),获取操作影响的行数。
【现象】
正常应该返回大于0的数,但是返回值却是 -1.
【解决】
存储过程中,多了一条语句:SET NOCOUNT ON;
该语句阻止存储过程返回信息中包含受影响行数的信息,以提高性能。
去掉该语句,标题提到的问题就解决了。
【备注】
这个问题比较low,只是被它坑了一小时,这里mark一下。关于SET NOCOUNT ON;的含义,可以参考:http://www.cnblogs.com/lmfeng/archive/2011/10/12/2208821.html
相关文章推荐
- IOS UIView 之实例方法 Instance Methods
- UIStack View
- Android平台Camera实时滤镜实现方法探讨(二)--Android-GPUImage探讨
- Xcode7 UI自动化测试详解 带demo UITests
- JPA注解主键生成策略-UUID
- ios 说一说UINavigationController 的堆栈
- 解决 UITableview 分割线右移15像素问题
- Collection框架之Queue
- iOS 蓝牙开发 BabyBluetooth蓝牙库介绍
- 猫(Modem)和路由器有什么区别?
- Android开发-UI控件:为ListView,GirdView,etc...添加系统自带的下拉刷新功能
- 深入理解dispatch_queue
- UIDatePicker (时间、日期选择器使用)
- 动手搭建 iOS CI 环境之「了解 xcodebuild 命令」
- 获取本机MAC地址,创建GUID,硬盘序列号,vs2013代码通过验证
- java版的YUI3 combine服务-Combo Handler
- UITextView 的简单用法
- 创建一个流畅循环的UIScrollView
- UICollectionView
- EasyUI常用控件禁用方法