1

我想测试 NULL 值的 SQL 输出参数。我意识到 SQLString.NULL 不等于 DBNull.Value。我的问题是,是否有更通用的方法来检查参数的空值?

理想情况下,我不想根据 SQL 类型检查每个参数,例如整数参数 SqlTypes.SqlInt32.Null。

这是我的代码片段:

.ExecuteStoredProcedure("spGetClientDetails")

If CInt(.Parameters("@return_val").Value) = 0 Then

If myParams(1).SqlValue.Equals(SqlTypes.SqlString.Null) Or myParams(1).SqlValue.Equals(System.DBNull.Value) Then
    Claimants = ""
Else...
4

1 回答 1

2

如果您使用Value而不是SqlValue,您将获得常规的 .NET 类型而不是SqlType. 当数据库返回时NULLValue将设置为DBNull.Value.

一个简洁的检查方法DBNull.ValueTryCast

Dim Claimants As String = TryCast(myParams(1).Value, String)

这将设置ClaimantsNothing如果myParams(1)不是字符串。要改为设置Claimants为空字符串,您可以添加If

Dim Claimants As String = If(TryCast(myParams(1).Value, String), "")
于 2013-05-20T10:18:10.100 回答