将null值传递给.vb.net中的整数变量

时间:2013-08-15 06:32:14

标签: vb.net

我有这样的整数变量:

Dim valetid as integer
 If cvalettype.Checked Then
            valetid = RecordID("vtid", "VType_tbl", "Vtype", cmbvalettype.Text)
        Else
            valetid = 0
        End If 

如果条件进入其他情况,则valetid取0值。即仅将数据库保存为0。 如果条件来到其他情况我想在mydatabase中将我的valetid保存为Null(现在在我的数据库中将valetid保存为0)。在我的数据库中,我声明为int.how的数据类型我可以这样做吗?

3 个答案:

答案 0 :(得分:5)

首先,您的整数变量必须在VB代码和数据库中都可以为空。假设数据库允许此字段为空,您可以执行以下操作:

Dim valetid as Integer?
If cvalettype.Checked Then
    valetid = RecordID("vtid", "VType_tbl", "Vtype", cmbvalettype.Text)
Else
    valetid = Nothing
End If

' Do stuff with your valetid variable here

或者,正如Neolisk所喜欢的那样:

Dim valetid as Nullable(Of Integer)
If cvalettype.Checked Then
    valetid = RecordID("vtid", "VType_tbl", "Vtype", cmbvalettype.Text)
Else
    valetid = Nothing
End If

' Do stuff with your valetid variable here

答案 1 :(得分:0)

我愿意;

    If cvalettype.Checked Then
        valetid = RecordID("vtid", "VType_tbl", "Vtype", cmbvalettype.Text)
    Else
        valetid = nothing
    End If 

然后你可以测试;

    if valetid isnot nothing then
         'write valetid to database
    else
         'write dbnull to database
    end if

答案 2 :(得分:-1)

你的整数被声明为可以为空的整数吗? 如果是这样, 你可以这样做:

Dim valetid as integer
 If cvalettype.Checked Then
            valetid = RecordID("vtid", "VType_tbl", "Vtype", cmbvalettype.Text)
        Else
            valetid.hasvalue =false
        End If