传入NULL整数?

时间:2011-02-08 20:11:47

标签: asp.net vb.net parameters null

我有一个接受许多参数的函数..然后进行数据库插入。

我在其中一个字段(modelID)上有一个外键

如果没有选择模型ID,我想传递一个NULL。

我尝试了以下内容:

 Dim model As Nullable(Of Integer)
        If ddlModel.SelectedValue = "Other" Then
            'add new model
            model = cSource.InsertModel(txtModel.Text, ddlManuf.SelectedValue)
        ElseIf ddlModel.SelectedValue = "0" Then
            model = Nothing
        Else
            model = ddlModel.SelectedValue
        End If

但现在我收到一条错误消息:Nullable对象必须有一个值。

我该如何解决这个问题?如果我传入0,则不会插入,因为它会破坏数据库约束:(

3 个答案:

答案 0 :(得分:1)

使用“model = DBNull.Value”

答案 1 :(得分:0)

改为:

model.Value = Nothing

如果错误仍然发生,请告诉我们?

同样,如果您有一个空日期,则可以将DBNull.Value传递给数据库。

答案 2 :(得分:0)

以下工作:

 Dim model As Integer
        If ddlModel.SelectedValue = "Other" Then
            'add new model
            model = cSource.InsertModel(txtModel.Text, ddlManuf.SelectedValue)
        ElseIf ddlModel.SelectedValue = "0" Then
            model = Nothing
        Else
            model = ddlModel.SelectedValue
        End If

然后在向存储过程添加参数时检查0,如果它为0,则我将DBnull分配给它。