【发布时间】:2010-08-25 04:19:45
【问题描述】:
我正在尝试编写一个通用函数,它将检查每个数据库参数以查看它是否为空,如果是,则返回 DBNull;如果不是,则返回该对象。
这是我的功能:
Public Shared Function CheckForNull(ByVal obj As Object) As Object
If obj <> Nothing Then Return obj Else Return DBNull.Value
End Function
我的问题是我传递给函数的一些对象是可空的。所以我可以通过函数 Long?或 Int?,但是当一个可为空的类型传递给函数时,它被转换为它的值类型。那么如果我通过一个 Long 呢?如果值为 0,则该函数返回 DBNull,因为 Long?转换为 Long 并且 Long 的值为 0 相当于 Nothing。有没有办法让这个函数也适用于 Nullable 类型?
如果没有,我将只使用以下语句而不是一个通用函数调用:
IIf(nullableVar.HasValue, nullableVar, DBNull.Value))
和
IIf(nonNullableVar IsNot Nothing , nonNullableVar, DBNull.Value))
【问题讨论】:
标签: vb.net