且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何将Null日期变量传递给SQL Server数据库

更新时间:2023-02-07 12:31:02

如果日期未知,发送 DbNull.Value 作为参数的值:

  If dateIsUnknown Then 
cmd.Parameters.Add(New SqlParameter _
With {.ParameterName =@purDT,_
.SqlDbType = SqlDbType.Date,_
.Value = DBNull.Value})
Else
cmd.Parameters.Add(New SqlParameter _
With {.ParameterName =@purDT,_
.SqlDbType = SqlDbType.Date,_
.Value = theDateVariable})
如果


I am looking for the best practice, real solution, to send a Null to a SQL Server 2008 R2 database table, when a date is unknown.

I read some inputs from a formview, and a date field maybe unknown. The database allows Null values in the field but the VB to store the Null prior to a parameterized query update is not working/eludes me.

    Dim tb2 As TextBox = TryCast(FormView1.FindControl("tbPurchDate"), TextBox)
    Dim purDT As Date
    If tb2.Text = "" Then
        IsDBNull(purDT)    ' Tried this along with other possible code
    Else
        purDT = Convert.ToDateTime(tb2.Text)
    End If

Any help would be greatly appreciated.

If the date is unknown, send DbNull.Value as the parameter's value:

If dateIsUnknown Then
    cmd.Parameters.Add(New SqlParameter _
                       With {.ParameterName = "@purDT", _
                             .SqlDbType = SqlDbType.Date, _
                             .Value = DBNull.Value})
Else
    cmd.Parameters.Add(New SqlParameter _
                       With {.ParameterName = "@purDT", _
                             .SqlDbType = SqlDbType.Date, _
                             .Value = theDateVariable})
End If