我刚刚开始申请。我得到了一些必须填充整数值的文本字段,但是当textfield为空时,我希望数值在数据库中仍为null,而不是必须添加" 0"。
它是这样的
DR.IN = Me.txtIn.Text
DR.OUT = Me.txtOut.Text
其中两个是整数值,当我保存到数据库时出现错误并说
Nullable对象必须具有值
我必须添加" 0",但我希望数据仍为空。有谁知道怎么做?
感谢您的帮助,对不起语法非常糟糕,我希望有人能理解我的问题:)
答案 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。