博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SqlParameter设定的value值为0时、调用的存储过程获取到的值却为null解决方法
阅读量:6680 次
发布时间:2019-06-25

本文共 840 字,大约阅读时间需要 2 分钟。

ExpandedBlockStart.gif

 

SqlDataReader dr = SqlHelper.ExecuteReader(Config.Connectionstring,

                CommandType.StoredProcedure, 

                "GetDatasById",

                SqlParameter("@Id",0));

 

 代码如上:存储过程获取的Id值为NULL

网上查了好久才查出解决方法,

 

ExpandedBlockStart.gif
View Code
SqlParameter[] pars = 
new SqlParameter[]{ 
new SqlParameter(
"
@Id
", SqlDbType.Int),};
            pars[
0].Value = 
0;
SqlDataReader dr = SqlHelper.ExecuteReader(Config.Connectionstring,
                CommandType.StoredProcedure, 
"
GetDataById
",pars);

 

当在 value 参数中指定 Object 时, 将从 Object 的 .NET Framework 类型推断出。

请小心使用 SqlParameter 构造函数的这个重载来指定整数参数值。因为此重载接受 Object 类型的 value,所以当此值为零时,必须将整数值转换为 Object 类型,如下面的 C# 示例所示。

Parameter = new SqlParameter("@pname", Convert.ToInt32(0));

如果不执行该转换,则编译器将认为您尝试调用 SqlParameter(string、 SqlDbType)构造函数重载。

 

微软给的解释:

http://msdn.microsoft.com/zh-cn/library/0881fz2y%28v=VS.80%29.aspx

 

 

 

 

 

转载于:https://www.cnblogs.com/zhaoguo435/archive/2011/12/30/2307298.html

你可能感兴趣的文章
非openresty方式安装Nginx + Lua + Redis 环境
查看>>
记2012-2013年一路的Windows Phone历程
查看>>
本博客搬家辣
查看>>
sysstat安装
查看>>
修改root密码
查看>>
Java语言Switch语句详解
查看>>
在Word 2007文档表格中设置行高度和列宽度
查看>>
微软云计算,有多近?有多远?
查看>>
android:layout_gravity和android:gravity
查看>>
我的友情链接
查看>>
使用 docker-compose 批量创建机器
查看>>
洛谷——P2820 局域网
查看>>
php获取数组第一个数组单元值的方法
查看>>
关于MYSQL的一些命令
查看>>
zabbix + RedHat7 安装配置指导
查看>>
Linux基础命令---显示主机名hostname
查看>>
ASP后门、***清理
查看>>
strtus2的xml文件配置
查看>>
Error:No suitable device found: no device found for connection
查看>>
SCCM 2016 为客户端分发管理组件Configuration Manager(一)
查看>>