传入 NULL 整数?

发布于 2024-10-16 15:05:39 字数 569 浏览 3 评论 0原文

我有一个函数,它接受多个参数。然后它会执行数据库插入。

我在其中一个字段 (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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

七堇年 2024-10-23 15:05:39

使用“模型= DBNull.Value”

Use "model = DBNull.Value"

月棠 2024-10-23 15:05:39

请改为:

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.

动听の歌 2024-10-23 15:05:39

以下工作有效:

 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 分配给它。

the following worked:

 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

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文