(0) exportieren Drucken
Alle erweitern

DBNull-Klasse

Aktualisiert: November 2007

Stellt einen nicht vorhandenen Wert dar. Diese Klasse kann nicht geerbt werden.

Namespace:  System
Assembly:  mscorlib (in mscorlib.dll)

[SerializableAttribute]
[ComVisibleAttribute(true)]
public sealed class DBNull : ISerializable, 
	IConvertible
/** @attribute SerializableAttribute */ 
/** @attribute ComVisibleAttribute(true) */
public final class DBNull implements ISerializable, 
	IConvertible
public final class DBNull implements ISerializable, IConvertible

Die DBNull-Klasse stellt einen nicht vorhandenen Wert dar. Bei einer Datenbank könnte es sich beispielsweise um eine Spalte in einer Tabellenzeile handeln, die keinerlei Daten enthält. Das heißt, es fehlt nicht nur der Spaltenwert, sondern die betreffende Spalte existiert nicht. Ein DBNull-Objekt stellt in diesem Fall die nicht vorhandene Spalte dar. COM-Interop verwendet die DBNull-Klasse zusätzlich, um zwischen einer VT_NULL-Variante, die einen nicht vorhandenen Wert darstellt, und einer VT_EMPTY-Variante zu unterscheiden, die einen nicht angegebenen Wert darstellt.

Der DBNull-Typ ist eine Singletonklasse, das heißt, es existiert nur ein DBNull-Objekt. Der DBNull.Value-Member stellt die einzige Instanz des DBNull-Objekts dar. DBNull.Value kann verwendet werden, um einen nicht vorhandenen Wert explizit einem Datenbankfeld zuzuweisen. Allerdings weisen die meisten ADO.NET-Datenprovider automatisch Werte von DBNull zu, wenn ein Feld keinen gültigen Wert aufweist. Sie können bestimmen, ob ein aus einem Datenbankfeld abgerufener Wert ein DBNull-Wert ist, indem Sie den Wert dieses Felds an die DBNull.Value.Equals-Methode übergeben. Einige Sprachen und Datenbankobjekte stellen jedoch Methoden bereit, mit denen einfacher ermittelt werden kann, ob der Wert eines Datenbankfelds DBNull.Value ist. Hierzu gehören die IsDBNull-Funktion in Visual Basic, die Convert.IsDBNull-Methode, die DataTableReader.IsDBNull-Methode und die IDataRecord.IsDBNull-Methode.

Verwechseln Sie nicht die null-Notation in der objektorientierten Programmierung mit dem DBNull-Objekt. In der objektorientierten Programmierung bezeichnet null das Fehlen eines Objektverweises. DBNull hingegen stellt eine nicht initialisierte Variante oder eine nicht vorhandene Datenbankspalte dar.

Im folgenden Beispiel wird die DBNull.Value.Equals-Methode aufgerufen, um zu ermitteln, ob ein Datenbankfeld in einer Kontaktdatenbank einen gültigen Wert aufweist. Wenn dies der Fall ist, wird der Feldwert an die Zeichenfolgenausgabe in einer Bezeichnung angefügt.

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;
}


Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile für Smartphone, Windows Mobile für Pocket PC, Xbox 360

.NET Framework und .NET Compact Framework unterstützen nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

.NET Framework

Unterstützt in: 3.5, 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Unterstützt in: 3.5, 2.0, 1.0

XNA Framework

Unterstützt in: 2.0, 1.0

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft