2011-02-08 41 views
1

我有一个函数,需要在一些参数..然后做一个数据库插入。传入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 

,但现在我得到一个错误说:可空对象必须有一个值。

我该如何解决这个问题?如果我在一个0通过,它不插入,因为它打破了DB约束:(

回答

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它。

0

做,而不是:

model.Value = Nothing

,让我们知道如果错误仍然发生?

而且,当你有一个空的日期,你可以通过DBNull.Value的分贝。