如何制作可为空的整数值

How To Make a Nullable Integer Value

我刚开始申请。我有一些必须用整数值填充的文本字段,但是当文本字段为空时,我希望该值在数据库中仍然为空而不是必须添加“0”。

是这样的

        DR.IN = Me.txtIn.Text
        DR.OUT = Me.txtOut.Text

其中两个是整数值,当我保存到数据库时出现错误并说

The Nullable Object Must Have Value

我必须加“0”,但我希望数据仍然为空。有人知道怎么做吗?

感谢您的帮助,抱歉我的语法很糟糕,我希望有人能理解我的问题:)

您可以使用 If 运算符进行条件检查 return Nothing (null) 如果文本框中没有文本或文本框的整数值:

Dim value As Integer? = If(TextBox1.Text.Length = 0, Nothing, Integer.Parse(TextBox1.Text))

您没有显示一些相当重要的信息,但我假设您正在使用 Integer?Value 属性,而没有先检查它是否确实有一个值。这就是 Nullable 的全部要点:它可以有值也可以没有。如果没有,则不能使用该值。保存 Integer? 可能如下所示:

Dim command as new SqlCommand

command.CommandText = "UPDATE MyTable SET Number = @Number WHERE ID = @ID"

command.Parameters.Add("@Number", SqlDbType.Int).Value = If(myNullableInteger.HasValue,
                                                            myNullableInteger.Value,
                                                            CObj(DBNull.Value))

使用 default(Nullable<type>) 将 return 你 Nullable<type> 设置为空。

您可以在 C# 中创建一个可为 null 的整数,例如:

int? myint;

并在 VB.net 喜欢:

Dim myint As Integer?