如何将 vb.net 中日期的空值传递给 sql 存储过程?

发布于 2024-07-14 15:53:47 字数 237 浏览 7 评论 0原文

我的应用程序是asp.net 和vb。

在我的页面中,我有一个用于传递日期的文本框。 如果我没有输入日期并单击提交,则必须将空值传递给存储过程。

我尝试了以下代码,例如 DBNull.ValueDateTime.MinValue。 在这种情况下,传递的不是 null,而是 "#12:00:00#"。 我必须通过 Null。

My application is asp.net with vb.

In my page I have a textbox for passing date. If I didn't enter date and on clicking submit, I have to pass null value to the stored procedure.

I tried following codes such as DBNull.Value and DateTime.MinValue. In that case instead of null, "#12:00:00#" is passing. I have to pass Null.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

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

发布评论

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

评论(2

苍暮颜 2024-07-21 15:53:47

只需为参数分配值 DBNull.Value

[编辑]

如果您使用的是 SqlParameter (感谢 Jon),那么如果出现任何错误,您可以这样设置

parameter.Value = DBNull.Value 

Just assign the parameter the value DBNull.Value

[EDIT]

If you are using SqlParameter (thanks Jon) then you can set it like this if it gives any error

parameter.Value = DBNull.Value 
放飞的风筝 2024-07-21 15:53:47
Dim pflt_dateto As SqlParameter = cmd.CreateParameter
        pflt_dateto.Direction = ParameterDirection.Input
        pflt_dateto.DbType = SqlDbType.Int
        pflt_dateto.IsNullable = True
        pflt_dateto.ParameterName = "flt_dateto"

        If String.IsNullOrEmpty(dateto) Then
            pflt_dateto.SqlValue = DBNull
        Else
            pflt_dateto.SqlValue = dateto
        End If

        cmd.Parameters.Add(pflt_dateto)

由于你设置了参数可为空,错误就会消失。 现在的问题是 .NET 将空整数传递为 0,因此我们需要处理这个问题。

Dim pflt_dateto As SqlParameter = cmd.CreateParameter
        pflt_dateto.Direction = ParameterDirection.Input
        pflt_dateto.DbType = SqlDbType.Int
        pflt_dateto.IsNullable = True
        pflt_dateto.ParameterName = "flt_dateto"

        If String.IsNullOrEmpty(dateto) Then
            pflt_dateto.SqlValue = DBNull
        Else
            pflt_dateto.SqlValue = dateto
        End If

        cmd.Parameters.Add(pflt_dateto)

Since you set up the parameter nullable, the error will disappear. Now the issue is that .NET pass null integer as 0 so we need to deal with that.

Chao

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