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

htm*_*11h 7 vb.net sql-server null date sql-server-2008-r2

我正在寻找最佳实践,真正的解决方案Null,当日期未知时,发送到SQL Server 2008 R2数据库表.

我从formview中读取了一些输入,并且日期字段可能未知.数据库允许字段中的Null值,但VB在参数化查询更新之前存储Null不起作用/逃避我.

    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
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激.

And*_*ton 12

如果日期未知,请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})
End If
Run Code Online (Sandbox Code Playgroud)