在 C# 中将空值赋给 SqlParameter
提供的代码遇到错误:“无法从 DBNull 隐式转换为 int。” 此错误源于条件运算符,它尝试将 int 值或 DBNull 类型值赋给 SqlParameter 的 Value 属性。不幸的是,这些数据类型不兼容,运算符无法确定合适的返回类型。
解决方法是将 AgeItem.AgeIndex 值强制转换为 object 类型或使用空合并运算符 (??)。将 AgeItem.AgeIndex 强制转换为 object 类型可确保它可以赋给 Value 属性(Value 属性需要一个 object)。或者,使用 ?? 运算符可以采用更简洁的方法:
<code class="language-csharp">SqlParameter[] parameters = new SqlParameter[1]; SqlParameter planIndexParameter = new SqlParameter("@AgeIndex", SqlDbType.Int); planIndexParameter.Value = (object)AgeItem.AgeIndex ?? DBNull.Value; parameters[0] = planIndexParameter;</code>
在这种情况下,?? 会评估 AgeItem.AgeIndex,如果它是 null,则将参数的值赋给 DBNull.Value。通过利用类型转换或空合并运算符,我们可以解决上述错误并将所需值赋给 SqlParameter 的 Value 属性。
以上是在 C# 中分配给 SqlParameter 时如何处理空值?的详细内容。更多信息请关注PHP中文网其他相关文章!