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 Basic IsDBNull函数Convert.IsDBNullDataTableReader.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.

适用于