param7[1].Value = tbLastName.Text.Length > 0 ? tbLastName.Text : DBNull.Value;
为什么这是不可能的,还有什么建议可以try 吗?20个参数的If/else是不可能的.
param7[1].Value = tbLastName.Text.Length > 0 ? tbLastName.Text : DBNull.Value;
为什么这是不可能的,还有什么建议可以try 吗?20个参数的If/else是不可能的.
问题在于(如错误消息所示),条件表达式需要在两个分支上使用相同的类型,或者需要从一个类型隐式转换为另一个类型.在你的例子中,没有一个,所以你得到了错误.一个快速修复方法是将其中一个值强制转换为(object)
(这很好,因为DbParameter.Value
的类型无论如何都是object
)
所以这应该对你有用:
param7[1].Value = tbLastName.Text.Length > 0 ? tbLastName.Text : (object)DBNull.Value;