SqlParameter设定的value值为0时、调用的存储过程获取到的值却为null解决方法
原C#代码如下:
- if (query != null)
- {
- switch (query.MethodFlag)
- {
- //进出口退补税额统计表
- case (int)EnumClassifyCorrectionRSTMethodFlags.CCRSTStatistial:
- paras[] = new SqlParameter("reportType", );
- sqlWhere += "BASETYPE=0";
- break;
- case (int)EnumClassifyCorrectionRSTMethodFlags.CCCustomDistrictStruct:
- paras[] = new SqlParameter("reportType", );
- sqlWhere += "BASETYPE=2";
- break;
- //环节
- case (int)EnumClassifyCorrectionRSTMethodFlags.CCCorrectionStateStatistial:
- paras[] = new SqlParameter("reportType", );
- sqlWhere += "BASETYPE=3";
- break;
- //章节
- case (int)EnumClassifyCorrectionRSTMethodFlags.CCCHAPTERStatistial:
- paras[] = new SqlParameter("reportType", );
- sqlWhere += "BASETYPE=4";
- break;
- //类
- case (int)EnumClassifyCorrectionRSTMethodFlags.CCCATEGORYStatistial:
- paras[] = new SqlParameter("reportType", );
- sqlWhere += "BASETYPE=5";
- break;
- //大类
- case (int)EnumClassifyCorrectionRSTMethodFlags.CCBIGCATEGORYStatistial:
- paras[] = new SqlParameter("reportType", );
- sqlWhere += "BASETYPE=6";
- break;
- case (int)EnumClassifyCorrectionRSTMethodFlags.CCAffiliatedCustomDistrictStruct:
- paras[] = new SqlParameter("reportType", );
- sqlWhere += "BASETYPE=7";
- break;
- default:
- result = false;
- break;
- }
- string strWhere = GetStrWhere(query, ref sqlWhere,ref monthCount);
- paras[] = new SqlParameter("strWhere", strWhere);
- paras[] = new SqlParameter("sqlWhere", sqlWhere );
- paras[] = new SqlParameter("reportCount", Convert.ToInt32(monthCount));
- paras[] = new SqlParameter("RecordCount", query.SumRecordsCount);
- paras[].Direction = ParameterDirection.Output;
在调用存储过程的时候发现int类型的参数paras[0]和paras[4]在赋给其值为0的情况下变成了null。
解决方案:
- paras[] = new SqlParameter("reportType", Convert.ToInt32());
paras[3] = new SqlParameter("reportCount", Convert.ToInt32(monthCount));
paras[4] = new SqlParameter("RecordCount", query.SumRecordsCount);//返回参数,可以为null,所以此处没做修改
paras[4].Direction = ParameterDirection.Output;
value 参数中指定 Object 时,SqlDbType 将从 Object 的 .NET Framework 类型推断出。
请小心使用 SqlParameter 构造函数的这个重载来指定整数参数值。因为此重载接受 Object 类型的 value,所以当此值为零时,必须将整数值转换为 Object 类型,如下面的 C# 示例所示。
- Parameter = new SqlParameter("@pname", Convert.ToInt32(0));
如果不执行该转换,则编译器将认为您尝试调用 SqlParameter(string、 SqlDbType)构造函数重载。
SqlParameter设定的value值为0时、调用的存储过程获取到的值却为null解决方法的更多相关文章
- MyBatis参数条件查询传入的值为0时的判断
MyBatis条件查询对字段判断是否为空一般为: <if test="testValue!=null and testValue != ''"> and test_va ...
- 创建一个接口Shape,其中有抽象方法area,类Circle 、Rectangle实现area方法计算其面积并返回。又有Star实现Shape的area方法,其返回值是0,Star类另有一返回值boolean型方法isStar;在main方法里创建一个Vector,根据随机数的不同向其中加入Shape的不同子类对象(如是1,生成Circle对象;如是2,生成Rectangle对象;如是3,生成S
题目补充: 创建一个接口Shape,其中有抽象方法area,类Circle .Rectangle实现area方法计算其面积并返回. 又有Star实现Shape的area方法,其返回值是0,Star类另 ...
- python 四种方法修改类变量,实例对象调用类方法改变类属性的值,类对象调用类方法改变类属性的值,调用实例方法改变类属性的值,直接修改类属性的值
三种方法修改类变量,实例对象调用类方法改变类属性的值,类对象调用类方法改变类属性的值,调用实例方法改变类属性的值,类名就是类对象,city就是类变量, #coding=utf-8 class empl ...
- jquery-easyui的datagrid在checkbox多选时,行选中不正确应,去除高亮的解决方法
jquery-easyui的datagrid在checkbox多选时,行选中不正确应,去除高亮的解决方法 工作中用到一个具有多选功能的easyui-datagrid在处理cell的点击事件时,不同 ...
- Mybatis中 Integer 值为0时,默认为空字符串的解决办法。
需求是查询级别为0的用户 User对象里的level字段的值为0,查询时居然没有查到为level为0的用户. <select id="selectSelective" par ...
- SharpDevelop 编译时,任务失败,因为未找到“resgen.exe”的解决方法
在git clone sprite的项目,在本地编译的时候,会出现 任务失败,因为未找到“resgen.exe”,或未安装正确的 Microsoft Windows SDK.任务正在注册表项 HKEY ...
- OpenCV程序在Debug时出现「PDB文件无法加载」的一个解决方法
这几天毕设要用到OpenCV,按照网上的教程来搭建开发环境. 用的是OpenCV 3.0 beta + Visual Studio Community 2013.我的系统64位是Win 8.1,但在加 ...
- Library Publication 时遇到 "more than one library with package name" 错误的解决方法
Library Publication 是 Gradle 在0.9.0 时增加的一个新特性,它的作用是让Lib也能发布不同的版本 在这之前,Lib只能发布release版本,你的项目中依赖的所有Lib ...
- IN 查询时出现ORA-01795:列表中的最大表达式数为1000解决方法
问题描写叙述: SQL进行IN查询时出现:java.sql.SQLException: ORA-01795: 列表中的最大表达式数为 1000 解决的方法: 问题原因是:SQL进行IN查询时.IN中的 ...
随机推荐
- 第二个sprint第六天
讨论地点:qq 讨论成员:邵家文.李新.朱浩龙.陈俊金 今天完成:统计功能前期工作已经完成,暂时对它进行搁置. 开发感悟:今天回了乡下吃了一顿饭,发现还是乡下环境好,比较适合在那种环境下 ...
- 第一个Sprint冲刺第十天
讨论成员:邵家文.李新.朱浩龙.陈俊金 工作:第一个计时功能完成,还有一些复杂的公式已完成. 关于github其实我们团队,还没有搞清楚github的真正用途,我们尚要花时间去学习如 ...
- js中获取样式的俩种方法 style.color和style['color'] 区别
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- PHP 中安装memcache扩展文件下载对应地址。
PHP 5.5.1版本下载了很多,安装都不成功.终于找到一个适合版本. http://windows.php.net/downloads/pecl/releases/memcache/3.0.8/ ...
- python 建立网站
python建立网站相关学习资源: 1. 一整套教程:http://www.pythondoc.com/flask-mega-tutorial/helloworld.html 2. 知乎关于这个问题的 ...
- MyEclipse 10 和 2014 两个版本共存破解 - imsoft.cnblogs
第一步:运行 (run.bat)文件, 输入任意用户名 第二步:点击Systemid... 按钮,自动生成本机器的systemid. 第三步: 点菜单Tools->RebuildKey 第四 ...
- [sql server发布订阅]after触发器执行失败造成复制不成功
结论: (以插入而例) 发布端的数据插入成功 订阅段的数据不会插入 实验 创建一张新表 create table test_subscriber (id int, mark varchar(2),in ...
- box2dweb 学习笔记--sample讲解
前言: 之前博文"台球游戏的核心算法和AI(1)" 中, 提到过想用HTML5+Box2d来编写实现一个台球游戏. 以此来对比感慨一下游戏物理引擎的巨大威力. 做为H5+box2d ...
- centos 服务器操作
CENTOS下创建FTP登录用户 yum install vsftpd2.启动/重启/关闭vsftpd服务器[root@localhost ftp]# /sbin/service vsftpd re ...
- 更改SAP GUI 登陆背景
您也可以定制初始屏幕(SAP Easy Access): 所有用户的全局设置:o 更改位于初始屏幕右侧的登录 - 如果希望将登录放置在初始屏幕右侧,请按如下处理: 使用事务 SW ...