将null分配给SqlParameter

将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;


慕容708150
浏览 778回答 3
3回答

qq_遁去的一_1

除非在存储过程中指定了默认值(如果使用存储过程),否则需要在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彼此不同。希望这会有所帮助。
打开App,查看更多内容
随时随地看视频慕课网APP