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

时间:2009-03-16 06:27:03

标签: sql vb.net stored-procedures parameters null

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

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

我尝试使用DBNull.ValueDateTime.MinValue等代码。在那种情况下,"#12:00:00#"正在传递而不是null。我必须通过Null。

2 个答案:

答案 0 :(得分:15)

只需为参数赋值DBNull.Value

即可

[编辑]

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

parameter.Value = DBNull.Value 

答案 1 :(得分: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)

由于您将参数设置为可为空,因此错误将消失。现在问题是.NET将null整数传递为0所以我们需要处理它。