如何创建整数为 NULL 的条件?

How to create a condition with an Integer being NULL?

提问人:Barnabeck 提问时间:9/5/2023 最后编辑:Heretic MonkeyBarnabeck 更新时间:9/5/2023 访问量:37

问:

我正在向 DataTable t 添加一行,其中包含 INTEGER 类型的列。根据条件,在某些情况下,该列必须为 null。我该怎么做?

t.Rows.Add(new Object[] { String, Integer) })

我不能将 Null 或 DBNull.Value 分配给整数,但我实际上可以将 DBNull.Value 分配给 t.Rows.Add 命令的第二个参数。 那么,我该怎么做呢?凭直觉,我会这样做(当然这是不允许的)

int Integer = NULL;
if(t.Rows.Count > 0)
{
   Integer = Convert.ToInt32(t.Rows[0][1]);
}

      
C# 数据表 整数

评论

3赞 David 9/5/2023
你只是在寻找可为空的类型,还是我误解了你?
4赞 Heretic Monkey 9/5/2023
请不要将类型名称用于变量名称;阅读和理解正在发生的事情非常令人困惑......
0赞 Barnabeck 9/5/2023
异端猴子,你可能是对的,尽管目的是简化
0赞 Barnabeck 9/5/2023
大卫,谢谢。我听说过可为 null 的类型,但直到现在我才知道它如何使事情变得更容易。谢谢你的提示!

答:

2赞 jmcilhinney 9/5/2023 #1

多年来,.NET 一直支持可为 null 的值类型。在这种情况下,您可以执行如下操作:

int? number = myDataRow.IsDBNull(columnIndex) ? (int?) null : myDataRow.Field<int>(columnIndex));

我现在不在电脑前,所以我会仔细检查三元语句,但它应该非常接近。

然后,您必须使用其 和 属性将该变量视为可为 null。HasValueValue