原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. Python 练习册--生成唯一激活码(邀请码)

    题目是这样子的: 做为 Apple Store App 独立开发者,你要搞限时促销,为你的应用生成激活码(或者优惠券),使用 Python 如何生成 200 个激活码(或者优惠券)? 分析 其实要生成 ...

  2. 即使连网了ping也会失败

    /*************************************************************************** * 即使连网了ping也会失败 * 说明: * ...

  3. spark读hdfs文件实现wordcount并将结果存回hdfs

    package iie.udps.example.operator.spark; import scala.Tuple2; import org.apache.spark.SparkConf; imp ...

  4. Page_Init 的执行过程

    网上有的资料在说Page_Init这个事件只会在第一次加载页面时触发,实际上并不是这样,我们会发现每次回发页面,Page_Init事件都会被执行, 举一个例子 private static int t ...

  5. 使用labview对kinect进行开发

    一.必要工具: LabVIEW 2011 或更高版本 用于Microsoft Kinect的Kinesthesia工具包 - 利兹大学(University of Leeds) 详情参见(先注册ni) ...

  6. 2分钟读懂Hadoop和Spark的异同

    谈到大数据框架,现在最火的就是Hadoop和Spark,但我们往往对它们的理解只是提留在字面上,并没有对它们进行深入的思考,倒底现在业界都在使用哪种技术?二者间究竟有哪些异同?它们各自解决了哪些问题? ...

  7. nginx服务配置---php服务接入

    前言: 最近要搭建一个内部的wiki系统, 网上搜了一圈, 也从知乎上搜集了一些大神的评价和推荐. 重点找了几个开源的wiki系统, 不过发现他们都是采用php来实现的. 于是乎需要配置php环境, ...

  8. sgu259 Printed PR    贪心

    link:http://acm.sgu.ru/problem.php?contest=0&problem=259 思路就是贪心. 首先要读懂题目,输入的方式,把样例读懂. 第一,打印的总时间一 ...

  9. hdu4642 Fliping game ——博弈

    link:http://acm.hdu.edu.cn/showproblem.php?pid=4642 refer to: http://www.cnblogs.com/jackge/archive/ ...

  10. JavaWeb学习记录总结(二十九)--Servlet\Session\Cookie\Filter实现自动登录和记住密码

    一.Servlet package autologin.servlet.login; import java.io.IOException;import java.security.MessageDi ...