下面有一段这段代码,我在其中检查某个字段中的值是否为空(“”),是否要将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块的更好方法吗?