什么是VB.Net的#等价物#34; IsDBNull以便"

时间:2015-03-31 12:58:28

标签: c# vb.net

在VB.Net中你可以写:

If Not IsDBNull(oCustomerNameDataRow(0)) Then
    cbCustomerName.Items.Add(oCustomerNameDataRow(0).ToString
End If

C#中的方法IsDBNull相当于什么?

3 个答案:

答案 0 :(得分:10)

if (!DBNull.Value.Equals(oCustomerNameDataRow[0]))
{
  //something
}

MSDN (DBNull.Value)

答案 1 :(得分:5)

我会说相当于位于IsDBNull汇编中的Microsoft.VisualBasic方法(Microsoft.VisualBasic.Information)

Public Function IsDBNull(ByVal Expression As Object) As Boolean
    If Expression Is Nothing Then
        Return False
    ElseIf TypeOf Expression Is System.DBNull Then
        Return True
    Else
        Return False
    End If
End Function
Dim result As Boolean = IsDBNull(Nothing)

是位于IsDBNull汇编中的mscorlib方法(System.Convert)

public static bool IsDBNull(object value) {
    if (value == System.DBNull.Value) return true;
    IConvertible convertible = value as IConvertible;
    return convertible != null? convertible.GetTypeCode() == TypeCode.DBNull: false;
}
bool result = System.Convert.IsDBNull(null);

答案 2 :(得分:0)

尝试一下:

创建Extension Method。请按照以下步骤操作:

public static bool IsDBNull(this object val)
{
     return Convert.IsDBNull(val);
}

以及此Extension Method中的用途。

if(oCustomerNameDataRow[0].IsDBNull())
{
      // ...
}

我希望有用。