传入 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
但现在我收到一条错误消息:可为 Null 的对象必须有一个值。
我该如何解决这个问题?如果我传入 0,它不会插入,因为它破坏了数据库约束:(
I have a function that takes in a number of parameters.. it then does a db insert.
i have a foreign key on one of the fields (modelID)
i want to pass a NULL if no model ID is selected.
i tried the following:
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
but now i get an error saying: Nullable object must have a value.
how can i fix this? if i pass in a 0, it does not insert because it breaks the DB constraints :(
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
使用“模型= DBNull.Value”
Use "model = DBNull.Value"
请改为:
model.Value = Nothing
并让我们知道错误是否仍然发生?
同样,当您有空日期时,您可以将
DBNull.Value
传递给数据库。Do instead:
model.Value = Nothing
and let us know if the error still happens?
As well, when you have an empty date you can pass
DBNull.Value
to the db.以下工作有效:
然后,我在向存储过程添加参数时检查是否为 0,如果为 0,则将 DBnull 分配给它。
the following worked:
i then do a check for 0 when adding a parameter to the stored procedure, and if it's 0, then i assign DBnull to it.