将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彼此不同。希望这会有所帮助。
- 3 回答
- 0 关注
- 777 浏览
添加回答
举报
0/150
提交
取消