sql-server - 如何将空日期变量传递到 SQL Server 数据库

标签 sql-server vb.net date null sql-server-2008-r2

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

我从表单 View 中读取了一些输入,并且日期字段可能未知。数据库允许字段中存在 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

任何帮助将不胜感激。

最佳答案

如果日期未知,请发送 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

关于sql-server - 如何将空日期变量传递到 SQL Server 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15371727/

相关文章:

c# - 无法使用 smo 从 C# 执行脚本

Sql Datetime 将数据类型 varchar 转换为 datetime 时抛出错误

c# - 升级到VS2015时突然出现警告CS0436

.net - 控制台应用程序中的HttpUtility.UrlEncode

php - 如何获取当月的天数?在 PHP 中

php - SQLSRV PHP for SQL Server 不是有效的 Win32 应用程序

javascript - 哪个是验证用户输入、数据库约束或 Javascript 的更好方法?

vb.net Oracle 带参数插入 (ORA-00936 : missing expression)

mysql - 从 MYSQL 中的索引号获取工作日名称

c# - 将字符串转换为日期格式