我有以下代码将变量分配给'nullable'int类型。由于0在我的用例中有效,-1表示DB中的空值。
此代码在SELECT上按预期正常工作
int value = (reader["Value"] as int?) ?? -1;
但是当我在Update和Inserts上做反向时。如果值为-1,我该如何表示值DBNull.Value
我觉得我很亲近,但我似乎无法按预期工作。
insertQuery.Parameters.Add("@Value", SqlDbType.Int).Value = value ?? -1 : (object)DBNull.Value;
答案 0 :(得分:4)
将您的情况从value ?? -1 : (object)DBNull.Value;
更改为value == -1 ? (object)DBNull.Value : value
答案 1 :(得分:3)
您尝试使用空合并运算符和条件['file.0', 'file.1', 'file.2', 'file.3', 'file.10', 'file.100']
运算符的混合。听起来你根本没有得到?:
作为输入,所以你不能使用空合并运算符 - 你只需要条件运算符:
null
需要向(code as before).Value = value == -1 ? (object) DBNull.Value : value;
转换为条件运算符a" common"结果类型。