DBNull.Value DBNull.Value DBNull.Value DBNull.Value Field

定义

表示 DBNull 类的唯一实例。Represents the sole instance of the DBNull class.

public: static initonly DBNull ^ Value;
public static readonly DBNull Value;
 staticval mutable Value : DBNull
Public Shared ReadOnly Value As DBNull 

字段值

示例

下面的示例调用DBNull.Value.Equals方法,以确定联系人数据库中的数据库字段是否具有有效的值。The following example calls the DBNull.Value.Equals method to determine whether a database field in a contacts database has a valid value. 如果是这样,字段值追加到字符串输出在标签中。If it does, the field value is appended to the string output in a label.

private void OutputLabels(DataTable dt)
{
   string label; 

   // Iterate rows of table
   foreach (DataRow row in dt.Rows)
   {
      int labelLen;
      label = String.Empty;
      label += AddFieldValue(label, row, "Title");
      label += AddFieldValue(label, row, "FirstName");
      label += AddFieldValue(label, row, "MiddleInitial");
      label += AddFieldValue(label, row, "LastName");
      label += AddFieldValue(label, row, "Suffix");
      label += "\n";
      label += AddFieldValue(label, row, "Address1");
      label += AddFieldValue(label, row, "AptNo");
      label += "\n";
      labelLen = label.Length;
      label += AddFieldValue(label, row, "Address2");
      if (label.Length != labelLen)
         label += "\n";
      label += AddFieldValue(label, row, "City");
      label += AddFieldValue(label, row, "State");
      label += AddFieldValue(label, row, "Zip");
      Console.WriteLine(label);
      Console.WriteLine();
   }
}

private string AddFieldValue(string label, DataRow row, 
                             string fieldName) 
{                                
   if (! DBNull.Value.Equals(row[fieldName])) 
      return (string) row[fieldName] + " ";
   else
      return String.Empty;
}
Private Sub OUtputLabels(dt As DataTable)
   Dim label As String 

   ' Iterate rows of table
   For Each row As DataRow In dt.Rows
      Dim labelLen As Integer
      label = String.Empty
      label += AddFieldValue(label, row, "Title")
      label += AddFieldValue(label, row, "FirstName")
      label += AddFieldValue(label, row, "MiddleInitial")
      label += AddFieldValue(label, row, "LastName")
      label += AddFieldValue(label, row, "Suffix")
      label += vbCrLf
      label += AddFieldValue(label, row, "Address1")
      label += AddFieldValue(label, row, "AptNo")
      label += vbCrLf
      labelLen = Len(label)
      label += AddFieldValue(label, row, "Address2")
      If Len(label) <> labelLen Then label += vbCrLf
      label += AddFieldValue(label, row, "City")
      label += AddFieldValue(label, row, "State")
      label += AddFieldValue(label, row, "Zip")
      Console.WriteLine(label)
      Console.WriteLine()
   Next
End Sub

Private Function AddFieldValue(label As String, row As DataRow, _
                          fieldName As String) As String
   If Not DbNull.Value.Equals(row.Item(fieldName)) Then
      Return CStr(row.Item(fieldName)) & " "
   Else
      Return Nothing
   End If
End Function

注解

DBNull 是一个单一实例类,这意味着可以存在此类的此实例。DBNull is a singleton class, which means only this instance of this class can exist.

如果数据库字段有缺失数据,则可以使用DBNull.Value属性来显式分配DBNull对象的字段的值。If a database field has missing data, you can use the DBNull.Value property to explicitly assign a DBNull object value to the field. 但是,大多数数据访问接口自动执行此操作。However, most data providers do this automatically.

若要评估的数据库字段,以确定它们的值是否DBNull,可以将传递到的字段值DBNull.Value.Equals方法。To evaluate database fields to determine whether their values are DBNull, you can pass the field value to the DBNull.Value.Equals method. 但是,很少使用此方法,因为有多种其他方法来评估缺少数据的数据库字段。However, this method is rarely used because there are a number of other ways to evaluate a database field for missing data. 其中包括 Visual BasicIsDBNull函数,Convert.IsDBNull方法,DataTableReader.IsDBNull方法,IDataRecord.IsDBNull方法和其他几种方法。These include the Visual Basic IsDBNull function, the Convert.IsDBNull method, the DataTableReader.IsDBNull method, the IDataRecord.IsDBNull method, and several other methods.

适用于