原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解决方法的更多相关文章

  1. MyBatis参数条件查询传入的值为0时的判断

    MyBatis条件查询对字段判断是否为空一般为: <if test="testValue!=null and testValue != ''"> and test_va ...

  2. 创建一个接口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类另 ...

  3. python 四种方法修改类变量,实例对象调用类方法改变类属性的值,类对象调用类方法改变类属性的值,调用实例方法改变类属性的值,直接修改类属性的值

    三种方法修改类变量,实例对象调用类方法改变类属性的值,类对象调用类方法改变类属性的值,调用实例方法改变类属性的值,类名就是类对象,city就是类变量, #coding=utf-8 class empl ...

  4. jquery-easyui的datagrid在checkbox多选时,行选中不正确应,去除高亮的解决方法

    jquery-easyui的datagrid在checkbox多选时,行选中不正确应,去除高亮的解决方法 工作中用到一个具有多选功能的easyui-datagrid在处理cell的点击事件时,不同 ...

  5. Mybatis中 Integer 值为0时,默认为空字符串的解决办法。

    需求是查询级别为0的用户 User对象里的level字段的值为0,查询时居然没有查到为level为0的用户. <select id="selectSelective" par ...

  6. SharpDevelop 编译时,任务失败,因为未找到“resgen.exe”的解决方法

    在git clone sprite的项目,在本地编译的时候,会出现 任务失败,因为未找到“resgen.exe”,或未安装正确的 Microsoft Windows SDK.任务正在注册表项 HKEY ...

  7. OpenCV程序在Debug时出现「PDB文件无法加载」的一个解决方法

    这几天毕设要用到OpenCV,按照网上的教程来搭建开发环境. 用的是OpenCV 3.0 beta + Visual Studio Community 2013.我的系统64位是Win 8.1,但在加 ...

  8. Library Publication 时遇到 "more than one library with package name" 错误的解决方法

    Library Publication 是 Gradle 在0.9.0 时增加的一个新特性,它的作用是让Lib也能发布不同的版本 在这之前,Lib只能发布release版本,你的项目中依赖的所有Lib ...

  9. IN 查询时出现ORA-01795:列表中的最大表达式数为1000解决方法

    问题描写叙述: SQL进行IN查询时出现:java.sql.SQLException: ORA-01795: 列表中的最大表达式数为 1000 解决的方法: 问题原因是:SQL进行IN查询时.IN中的 ...

随机推荐

  1. Construct a basic automation test framework

    Elements in an automation test framework: actor,---simulate trader, have its own name, can get contr ...

  2. iOS打包为ipa的两种方式和生成P12证书的方式

    iOS项目打包为ipa的两种方式: 准备工作:先行在Xcode里面打开preferences,填写apple id. 通过iTunes+Xcode 在Xcode里,把模拟器调整为iOS Device, ...

  3. UITableView详解(2)

    承接上文,再续本文 一,首先我们对上次的代码进行改进,需要知道的一点是,滚动视图的时候,我们要创建几个视图,如果一个视图显示一个图片占据整个屏幕,对于滚动视图我们只需要创建三个视图就可以显示几千给图片 ...

  4. 13、C#基础整理(枚举)

    枚举 1.概念和作用 (1)用于存放常量,只能在定义时赋值(防止编程过程中恶意篡改,并且防止对同一事物的不同赋值--统一化) (2)定义的枚举类型需要包含该类型的所有可能的值 (3)方法.类.内部都可 ...

  5. HDU5860 (递推)

    Problem Death Sequence 题目大意 排成一行的约瑟夫问题. n个人排成一行,从第一个人开始,每个k个人报数,报到数的人被杀死,剩下的人重新排成一行再报数. 一共q个询问,每次询问第 ...

  6. 转:Web.config配置文件详解(新手必看)

    转:http://www.cnblogs.com/gaoweipeng/archive/2009/05/17/1458762.html 花了点时间整理了一下ASP.NET Web.config配置文件 ...

  7. PHP 转换snmp的时间格式

    function convert_snmp_timeticks($timeticks) { if(!is_numeric($timeticks)) { return FALSE; } //如果是字符串 ...

  8. 【Avalon源码】dateGetter

    function dateGetter(name, size, offset, trim) { return function(date) { var value = date["get&q ...

  9. selenium执行js报错

    selenium执行js报错 Traceback (most recent call last):    dr.execute_script(js)  File "C:\Python27\l ...

  10. php二分式查找

    要求数组是有序数组 1 <?php 2 #二分查找 3 function binarySearch(Array $arr, $target) { 4 $low = 0; 5 $high = co ...