如何制作可以为空的整数值

时间:2015-09-23 07:39:24

标签: .net vb.net integer nullable

我刚刚开始申请。我得到了一些必须填充整数值的文本字段,但是当textfield为空时,我希望数值在数据库中仍为null,而不是必须添加" 0"。

它是这样的

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

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

  

Nullable对象必须具有值

我必须添加" 0",但我希望数据仍为空。有谁知道怎么做?

感谢您的帮助,对不起语法非常糟糕,我希望有人能理解我的问题:)

4 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:0)

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

Integer?

答案 2 :(得分:0)

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

int? myint;

并在VB.net中像:

Dim myint As Integer? 

答案 3 :(得分:-1)

使用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>)设置为null。