3

我有这样的整数变量:

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

如果条件变为其他情况,则 valetid 取 0 值。即在数据库中仅保存为 0。如果条件出现在其他情况下,我想将我的 valetid 在我的数据库中保存为 Null(现在在我的数据库中将 valetid 保存为 0)。在我的数据库 Valetid 数据类型中我声明为 int。我该怎么做?

4

3 回答 3

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
于 2013-08-15T12:33:35.183 回答
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
于 2013-08-15T06:39:53.203 回答
-1

您的整数是否声明为可空整数?如果是这样,你可以简单地这样做:

Dim valetid as integer
 If cvalettype.Checked Then
            valetid = RecordID("vtid", "VType_tbl", "Vtype", cmbvalettype.Text)
        Else
            valetid.hasvalue =false
        End If 
于 2013-08-15T06:41:45.337 回答