我正在寻找最佳实践、真正的解决方案,以发送Null
当日期未知时,到 SQL Server 2008 R2 数据库表。
我从表单视图中读取了一些输入,并且日期字段可能未知。数据库允许字段中存在 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
或者如果你愿意的话,
cmd.Parameters.Add(New SqlParameter With {
.ParameterName = "@purDT",
.SqlDbType = SqlDbType.Date,
.Value = If(dateIsUnknown, DBNull.Value, DirectCast(theDateVariable, Object))}
)
有必要将变量强制转换为 Object 类型,以便 If 运算符具有要返回的公共类型。 Value 参数需要一个对象。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)