为了账号安全,请及时绑定邮箱和手机立即绑定

将null分配给SqlParameter

将null分配给SqlParameter

C#
慕容708150 2019-08-16 17:21:03
将null分配给SqlParameter以下代码给出了一个错误 - “没有从DBnull到int的隐式转换”。SqlParameter[] parameters = new SqlParameter[1];    SqlParameter planIndexParameter = new SqlParameter("@AgeIndex", SqlDbType.Int);planIndexParameter.Value = (AgeItem.AgeIndex== null) ? DBNull.Value : AgeItem.AgeIndex;parameters[0] = planIndexParameter;
查看完整描述

3 回答

?
qq_遁去的一_1

TA贡献1725条经验 获得超7个赞

除非在存储过程中指定了默认值(如果使用存储过程),否则需要在SQLCommand中将DBNull.Value作为空参数传递。最好的方法是在查询执行之前为任何缺少的参数分配DBNull.Value,并且在foreach之后将执行该任务。

foreach (SqlParameter parameter in sqlCmd.Parameters){
    if (parameter.Value == null)
    {
        parameter.Value = DBNull.Value;
    }}

否则改变这一行:

planIndexParameter.Value = (AgeItem.AgeIndex== null) ? DBNull.Value : AgeItem.AgeIndex;

如下:

if (AgeItem.AgeIndex== null)
    planIndexParameter.Value = DBNull.Value;else
    planIndexParameter.Value = AgeItem.AgeIndex;

因为在条件语句中不能使用不同类型的值,因为DBNull和int彼此不同。希望这会有所帮助。


查看完整回答
反对 回复 2019-08-16
  • 3 回答
  • 0 关注
  • 777 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信