DBNull Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Stellt einen nicht vorhandenen Wert dar. Diese Klasse kann nicht vererbt werden.
public ref class DBNull sealed
public ref class DBNull sealed : IConvertible, System::Runtime::Serialization::ISerializable
public sealed class DBNull
public sealed class DBNull : IConvertible, System.Runtime.Serialization.ISerializable
[System.Serializable]
public sealed class DBNull : IConvertible, System.Runtime.Serialization.ISerializable
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class DBNull : IConvertible, System.Runtime.Serialization.ISerializable
type DBNull = class
type DBNull = class
interface IConvertible
interface ISerializable
[<System.Serializable>]
type DBNull = class
interface ISerializable
interface IConvertible
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type DBNull = class
interface ISerializable
interface IConvertible
Public NotInheritable Class DBNull
Public NotInheritable Class DBNull
Implements IConvertible, ISerializable
- Vererbung
-
DBNull
- Attribute
- Implementiert
Beispiele
Im folgenden Beispiel wird die DBNull.Value.Equals Methode aufgerufen, um zu bestimmen, ob ein Datenbankfeld in einer Kontaktdatenbank einen gültigen Wert aufweist. Wenn dies der Fall ist, wird der Feldwert an die Zeichenfolgenausgabe in einer Beschriftung 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;
}
member this.OutputLabels(dt: DataTable) =
let mutable label = ""
// Iterate rows of table
for row in dt.Rows do
let mutable label = String.Empty
label <- label + this.AddFieldValue(label, row, "Title")
label <- label + this.AddFieldValue(label, row, "FirstName")
label <- label + this.AddFieldValue(label, row, "MiddleInitial")
label <- label + this.AddFieldValue(label, row, "LastName")
label <- label + this.AddFieldValue(label, row, "Suffix")
label <- label + "\n"
label <- label + this.AddFieldValue(label, row, "Address1")
label <- label + this.AddFieldValue(label, row, "AptNo")
label <- label + "\n"
let labelLen = label.Length
label <- label + this.AddFieldValue(label, row, "Address2")
let labelLen =
if label.Length <> labelLen then
label + "\n"
else label
label <- label + this.AddFieldValue(label, row, "City")
label <- label + this.AddFieldValue(label, row, "State")
label <- label + this.AddFieldValue(label, row, "Zip")
printfn $"{label}"
printfn ""
member _.AddFieldValue(label: string, row: DataRow, fieldName: string) =
if DBNull.Value.Equals row[fieldName] |> not then
(string row[fieldName]) + " "
else
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
Hinweise
Die DBNull Klasse stellt einen nicht vorhandenen Wert dar. In einer Datenbank kann beispielsweise eine Spalte in einer Zeile einer Tabelle keine Daten enthalten. Das heißt, die Spalte wird als nicht überhaupt vorhanden betrachtet, anstatt lediglich keinen Wert zu haben. Ein DBNull Objekt stellt die nicht vorhandene Spalte dar. Darüber hinaus verwendet COM-Interop die DBNull Klasse, um zwischen einer VT_NULL Variante zu unterscheiden, die einen nicht vorhandenen Wert angibt, und einer VT_EMPTY Variante, die einen nicht angegebenen Wert angibt.
Der DBNull Typ ist eine Singleton-Klasse, was bedeutet, dass nur ein DBNull Objekt vorhanden ist. Das DBNull.Value Element stellt das einzige DBNull Objekt dar.
DBNull.Value kann verwendet werden, um einem Datenbankfeld explizit einen nicht vorhandenen Wert zuzuweisen, obwohl die meisten ADO.NET Datenanbieter automatisch Werte von DBNull zuweisen, wenn ein Feld keinen gültigen Wert aufweist. Sie können ermitteln, 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 ist DBNull.Value. Dazu gehören die funktion Visual Basic IsDBNull, die Convert.IsDBNull-Methode, die DataTableReader.IsDBNull-Methode und die IDataRecord.IsDBNull-Methode.
Verwechseln Sie nicht den Begriff null in einer objektorientierten Programmiersprache mit einem DBNull Objekt. In einer objektorientierten Programmiersprache bedeutet das null Fehlen eines Verweises auf ein Objekt.
DBNull stellt eine nicht initialisierte Variante oder nicht vorhandene Datenbankspalte dar.
Felder
| Name | Beschreibung |
|---|---|
| Value |
Stellt die einzige Instanz der DBNull Klasse dar. |
Methoden
| Name | Beschreibung |
|---|---|
| Equals(Object) |
Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht. (Geerbt von Object) |
| GetHashCode() |
Dient als Standardhashfunktion. (Geerbt von Object) |
| GetObjectData(SerializationInfo, StreamingContext) |
Veraltet.
Implementiert die ISerializable Schnittstelle und gibt die daten zurück, die zum Serialisieren des DBNull Objekts erforderlich sind. |
| GetType() |
Ruft die Type der aktuellen Instanz ab. (Geerbt von Object) |
| GetTypeCode() | |
| MemberwiseClone() |
Erstellt eine flache Kopie der aktuellen Object. (Geerbt von Object) |
| ToString() |
Gibt eine leere Zeichenfolge (Empty) zurück. |
| ToString(IFormatProvider) |
Gibt eine leere Zeichenfolge mit der angegebenen IFormatProviderzurück. |
Explizite Schnittstellenimplementierungen
| Name | Beschreibung |
|---|---|
| IConvertible.ToBoolean(IFormatProvider) |
Diese Konvertierung wird nicht unterstützt. Beim Versuch, diese Konvertierung durchzuführen, wird ein InvalidCastException. |
| IConvertible.ToByte(IFormatProvider) |
Diese Konvertierung wird nicht unterstützt. Beim Versuch, diese Konvertierung durchzuführen, wird ein InvalidCastException. |
| IConvertible.ToChar(IFormatProvider) |
Diese Konvertierung wird nicht unterstützt. Beim Versuch, diese Konvertierung durchzuführen, wird ein InvalidCastException. |
| IConvertible.ToDateTime(IFormatProvider) |
Diese Konvertierung wird nicht unterstützt. Beim Versuch, diese Konvertierung durchzuführen, wird ein InvalidCastException. |
| IConvertible.ToDecimal(IFormatProvider) |
Diese Konvertierung wird nicht unterstützt. Beim Versuch, diese Konvertierung durchzuführen, wird ein InvalidCastException. |
| IConvertible.ToDouble(IFormatProvider) |
Diese Konvertierung wird nicht unterstützt. Beim Versuch, diese Konvertierung durchzuführen, wird ein InvalidCastException. |
| IConvertible.ToInt16(IFormatProvider) |
Diese Konvertierung wird nicht unterstützt. Beim Versuch, diese Konvertierung durchzuführen, wird ein InvalidCastException. |
| IConvertible.ToInt32(IFormatProvider) |
Diese Konvertierung wird nicht unterstützt. Beim Versuch, diese Konvertierung durchzuführen, wird ein InvalidCastException. |
| IConvertible.ToInt64(IFormatProvider) |
Diese Konvertierung wird nicht unterstützt. Beim Versuch, diese Konvertierung durchzuführen, wird ein InvalidCastException. |
| IConvertible.ToSByte(IFormatProvider) |
Diese Konvertierung wird nicht unterstützt. Beim Versuch, diese Konvertierung durchzuführen, wird ein InvalidCastException. |
| IConvertible.ToSingle(IFormatProvider) |
Diese Konvertierung wird nicht unterstützt. Beim Versuch, diese Konvertierung durchzuführen, wird ein InvalidCastException. |
| IConvertible.ToType(Type, IFormatProvider) |
Konvertiert das aktuelle DBNull Objekt in den angegebenen Typ. |
| IConvertible.ToUInt16(IFormatProvider) |
Diese Konvertierung wird nicht unterstützt. Beim Versuch, diese Konvertierung durchzuführen, wird ein InvalidCastException. |
| IConvertible.ToUInt32(IFormatProvider) |
Diese Konvertierung wird nicht unterstützt. Beim Versuch, diese Konvertierung durchzuführen, wird ein InvalidCastException. |
| IConvertible.ToUInt64(IFormatProvider) |
Diese Konvertierung wird nicht unterstützt. Beim Versuch, diese Konvertierung durchzuführen, wird ein InvalidCastException. |