与三元运算符一起使用时,将DBNull分配给整数类型会引发错误

时间:2018-10-18 03:24:18

标签: c# sql-server sqlparameters

下面有一段这段代码,我在其中检查某个字段中的值是否为空(“”),是否要将SqlParameter的值设置为NULL,否则将其设置为NULL。字段。

我的原始代码如下:

myCmd.Parameters.Add("@inID", SqlDbType.Int).Value = hiddenInID.Value.Trim()==""? DBNull.Value: hiddenInID.Value.Trim();

但是上面的代码不起作用,并且抛出一个错误,指出无法确定条件元素的类型,因为DBNull和字符串之间没有隐式转换。

所以我不得不将代码更改为此:

if(hiddenInID.Value.Trim() == "")
{
    myCmd.Parameters.Add("@inID", SqlDbType.Int).Value = DBNull.Value;
}
else
{
    myCmd.Parameters.Add("@inID", SqlDbType.Int).Value = hiddenInID.Value.Trim();
}

行得通。但是为什么它不能按第一种方式工作。有没有if else块的更好方法吗?

0 个答案:

没有答案