原C#代码如下:

  1. if (query != null)
  2. {
  3. switch (query.MethodFlag)
  4. {
  5. //进出口退补税额统计表
  6. case (int)EnumClassifyCorrectionRSTMethodFlags.CCRSTStatistial:
  7. paras[] = new SqlParameter("reportType", );
  8. sqlWhere += "BASETYPE=0";
  9. break;
  10. case (int)EnumClassifyCorrectionRSTMethodFlags.CCCustomDistrictStruct:
  11. paras[] = new SqlParameter("reportType", );
  12. sqlWhere += "BASETYPE=2";
  13. break;
  14. //环节
  15. case (int)EnumClassifyCorrectionRSTMethodFlags.CCCorrectionStateStatistial:
  16. paras[] = new SqlParameter("reportType", );
  17. sqlWhere += "BASETYPE=3";
  18. break;
  19. //章节
  20. case (int)EnumClassifyCorrectionRSTMethodFlags.CCCHAPTERStatistial:
  21. paras[] = new SqlParameter("reportType", );
  22. sqlWhere += "BASETYPE=4";
  23. break;
  24. //类
  25. case (int)EnumClassifyCorrectionRSTMethodFlags.CCCATEGORYStatistial:
  26. paras[] = new SqlParameter("reportType", );
  27. sqlWhere += "BASETYPE=5";
  28. break;
  29. //大类
  30. case (int)EnumClassifyCorrectionRSTMethodFlags.CCBIGCATEGORYStatistial:
  31. paras[] = new SqlParameter("reportType", );
  32. sqlWhere += "BASETYPE=6";
  33. break;
  34. case (int)EnumClassifyCorrectionRSTMethodFlags.CCAffiliatedCustomDistrictStruct:
  35. paras[] = new SqlParameter("reportType", );
  36. sqlWhere += "BASETYPE=7";
  37. break;
  38. default:
  39. result = false;
  40. break;
  41. }
  42. string strWhere = GetStrWhere(query, ref sqlWhere,ref monthCount);
  43.  
  44. paras[] = new SqlParameter("strWhere", strWhere);
  45. paras[] = new SqlParameter("sqlWhere", sqlWhere );
  46.  
  47. paras[] = new SqlParameter("reportCount", Convert.ToInt32(monthCount));
  48.  
  49. paras[] = new SqlParameter("RecordCount", query.SumRecordsCount);
  50. paras[].Direction = ParameterDirection.Output;

在调用存储过程的时候发现int类型的参数paras[0]和paras[4]在赋给其值为0的情况下变成了null。

解决方案:

  1. 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# 示例所示。

  1. 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. 第二个sprint第六天

    讨论地点:qq 讨论成员:邵家文.李新.朱浩龙.陈俊金 今天完成:统计功能前期工作已经完成,暂时对它进行搁置.        开发感悟:今天回了乡下吃了一顿饭,发现还是乡下环境好,比较适合在那种环境下 ...

  2. 第一个Sprint冲刺第十天

    讨论成员:邵家文.李新.朱浩龙.陈俊金 工作:第一个计时功能完成,还有一些复杂的公式已完成.          关于github其实我们团队,还没有搞清楚github的真正用途,我们尚要花时间去学习如 ...

  3. js中获取样式的俩种方法 style.color和style['color'] 区别

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  4. PHP 中安装memcache扩展文件下载对应地址。

    PHP 5.5.1版本下载了很多,安装都不成功.终于找到一个适合版本. http://windows.php.net/downloads/pecl/releases/memcache/3.0.8/   ...

  5. python 建立网站

    python建立网站相关学习资源: 1. 一整套教程:http://www.pythondoc.com/flask-mega-tutorial/helloworld.html 2. 知乎关于这个问题的 ...

  6. MyEclipse 10 和 2014 两个版本共存破解 - imsoft.cnblogs

      第一步:运行 (run.bat)文件, 输入任意用户名 第二步:点击Systemid... 按钮,自动生成本机器的systemid. 第三步: 点菜单Tools->RebuildKey 第四 ...

  7. [sql server发布订阅]after触发器执行失败造成复制不成功

    结论: (以插入而例) 发布端的数据插入成功 订阅段的数据不会插入 实验 创建一张新表 create table test_subscriber (id int, mark varchar(2),in ...

  8. box2dweb 学习笔记--sample讲解

    前言: 之前博文"台球游戏的核心算法和AI(1)" 中, 提到过想用HTML5+Box2d来编写实现一个台球游戏. 以此来对比感慨一下游戏物理引擎的巨大威力. 做为H5+box2d ...

  9. centos 服务器操作

     CENTOS下创建FTP登录用户 yum install vsftpd2.启动/重启/关闭vsftpd服务器[root@localhost ftp]# /sbin/service vsftpd re ...

  10. 更改SAP GUI 登陆背景

    您也可以定制初始屏幕(SAP Easy Access): 所有用户的全局设置:o   更改位于初始屏幕右侧的登录 -   如果希望将登录放置在初始屏幕右侧,请按如下处理:        使用事务 SW ...