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中的 ...
随机推荐
- HTML的盒子模型
每个HTML元素都可以看作一个装了东西的盒子,盒子具有宽度(width)和高度(height),盒子里面的内容到盒子的边框之间的距离即填充(padding),盒子本身有边框(border),而盒子边框 ...
- 【Oracle XE系列之四】创建OracleXE表空间详解
创建OracleXE表空间示例 sqlplus /nolog connect sys as sysdba SQL> create tablespace OPFOCN datafile 'C:\ ...
- JQuery事件手册
blur.focus blur失去焦点:focus获得焦点 load 当指定的元素(及子元素)已加载时,会发生 load() 事件 resize 当调整浏览器窗口的大小时,发生 resize ...
- magento日常使用
magento order number长度(修改)设置 2013年3月15日星期五 Asia/Shanghai上午10时22分02秒 1-进入要修改的该网站的数据库:2-找到表名:eav_entit ...
- 第一个demo
1.首先这是最初的概念模型. 2.最后设计成这样. 3.运行
- oracle疑难杂症问题
在虚拟机中安装了oracle10g,由于虚拟机的空间有限,看到磁盘空间快没了,就手贱把oracle目录中的空文件夹(E:\oracle\product\10.2.0\flash_recovery_ar ...
- Linux Qt动态库的创建和使用
一.创建动态库 编写一个共享库类,比如: //..base.h class Base : public QObject { Q_OBJECT public: ); void PrintLog(QStr ...
- Qt简介
一.Qt与Qt Creator简介 Qt是一个跨平台应用程序和 UI 开发框架.使用 Qt 您只需一次性开发应用程序,无须重新编写源代码,便可跨不同桌面和嵌入式操作系统部署这些应用程序. ...
- jsp不能引用js,cs等解决办法
最近项目中使用到Spring3,在感叹Spring3注解配置清爽的同时竟然出现了这个不和谐的事情,实在无法忍受 问题:部署项目后程序加载或用浏览器访问时出现类似的警告,2011-01-19 10:52 ...
- com.google.guava 包解析 ——Google Guava官方教程(中文版)
全网址 http://ifeve.com/google-guava/ 竹子博客: http://www.cnblogs.com/peida/archive/2013/06/08/ ...