gpt4 book ai didi

c# - 将 null 分配给 SqlParameter

转载 作者:IT王子 更新时间:2023-10-29 03:30:46 26 4
gpt4 key购买 nike

以下代码给出错误 - “没有从 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;

最佳答案

问题是 ?: 运算符无法确定返回类型,因为您返回的是 int 值或 DBNull 类型值,它们不兼容。

当然,您可以将 AgeIndex 的实例转换为满足 ?: 要求的 object 类型。

您可以按如下方式使用 ?? 空合并运算符

SqlParameter[] parameters = new SqlParameter[1];     
SqlParameter planIndexParameter = new SqlParameter("@AgeIndex", SqlDbType.Int);
planIndexParameter.Value = (object)AgeItem.AgeIndex ?? DBNull.Value;
parameters[0] = planIndexParameter;

这是来自 MSDN documentation 的引述对于解释问题的 ?: 运算符

Either the type of first_expression and second_expression must be the same, or an implicit conversion must exist from one type to the other.

关于c# - 将 null 分配给 SqlParameter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4555935/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com