DBNull Klas

Definitie

Vertegenwoordigt een niet-bestaande waarde. Deze klasse kan niet worden overgenomen.

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
Overname
DBNull
Kenmerken
Implementeringen

Voorbeelden

In het volgende voorbeeld wordt de DBNull.Value.Equals methode aangeroepen om te bepalen of een databaseveld in een database met contactpersonen een geldige waarde heeft. Als dit het geval is, wordt de veldwaarde toegevoegd aan de tekenreeksuitvoer in een 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;
}
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

Opmerkingen

De DBNull klasse vertegenwoordigt een niet-bestaande waarde. In een database kan een kolom in een rij van een tabel bijvoorbeeld helemaal geen gegevens bevatten. Dat wil gezegd dat de kolom helemaal niet bestaat in plaats van alleen geen waarde te hebben. Een DBNull object vertegenwoordigt de niet-bestaande kolom. Daarnaast maakt COM-interop gebruik van de DBNull klasse om onderscheid te maken tussen een VT_NULL variant, die een niet-bestaande waarde aangeeft en een VT_EMPTY variant, die een niet-opgegeven waarde aangeeft.

Het DBNull type is een singleton-klasse, wat betekent dat er slechts één DBNull object bestaat. Het DBNull.Value lid vertegenwoordigt het enige DBNull object. DBNull.Value kan worden gebruikt om expliciet een niet-bestaande waarde toe te wijzen aan een databaseveld, hoewel de meeste ADO.NET gegevensproviders automatisch waarden van DBNull toewijzen wanneer een veld geen geldige waarde heeft. U kunt bepalen of een waarde die is opgehaald uit een databaseveld een DBNull waarde is door de waarde van dat veld door te geven aan de DBNull.Value.Equals methode. Sommige talen en databaseobjecten leveren echter methoden waarmee u gemakkelijker kunt bepalen of de waarde van een databaseveld is DBNull.Value. Deze omvatten de functie Visual Basic IsDBNull, de methode Convert.IsDBNull, de methode DataTableReader.IsDBNull en de methode IDataRecord.IsDBNull.

Verwar het begrip in null een objectgeoriënteerde programmeertaal niet met een DBNull object. In een objectgeoriënteerde programmeertaal null betekent het ontbreken van een verwijzing naar een object. DBNull vertegenwoordigt een niet-geïnitialiseerde variant of niet-bestaande databasekolom.

Velden

Name Description
Value

Vertegenwoordigt het enige exemplaar van de DBNull klasse.

Methoden

Name Description
Equals(Object)

Bepaalt of het opgegeven object gelijk is aan het huidige object.

(Overgenomen van Object)
GetHashCode()

Fungeert als de standaardhashfunctie.

(Overgenomen van Object)
GetObjectData(SerializationInfo, StreamingContext)
Verouderd.

Implementeert de ISerializable interface en retourneert de gegevens die nodig zijn om het DBNull object te serialiseren.

GetType()

Hiermee haalt u de Type huidige instantie op.

(Overgenomen van Object)
GetTypeCode()

Hiermee haalt u de TypeCode waarde voor DBNull.

MemberwiseClone()

Hiermee maakt u een ondiepe kopie van de huidige Object.

(Overgenomen van Object)
ToString()

Retourneert een lege tekenreeks (Empty).

ToString(IFormatProvider)

Retourneert een lege tekenreeks met behulp van de opgegeven IFormatProvider.

Expliciete interface-implementaties

Name Description
IConvertible.ToBoolean(IFormatProvider)

Deze conversie wordt niet ondersteund. Als u deze conversie probeert te maken, wordt er een InvalidCastException.

IConvertible.ToByte(IFormatProvider)

Deze conversie wordt niet ondersteund. Als u deze conversie probeert te maken, wordt er een InvalidCastException.

IConvertible.ToChar(IFormatProvider)

Deze conversie wordt niet ondersteund. Als u deze conversie probeert te maken, wordt er een InvalidCastException.

IConvertible.ToDateTime(IFormatProvider)

Deze conversie wordt niet ondersteund. Als u deze conversie probeert te maken, wordt er een InvalidCastException.

IConvertible.ToDecimal(IFormatProvider)

Deze conversie wordt niet ondersteund. Als u deze conversie probeert te maken, wordt er een InvalidCastException.

IConvertible.ToDouble(IFormatProvider)

Deze conversie wordt niet ondersteund. Als u deze conversie probeert te maken, wordt er een InvalidCastException.

IConvertible.ToInt16(IFormatProvider)

Deze conversie wordt niet ondersteund. Als u deze conversie probeert te maken, wordt er een InvalidCastException.

IConvertible.ToInt32(IFormatProvider)

Deze conversie wordt niet ondersteund. Als u deze conversie probeert te maken, wordt er een InvalidCastException.

IConvertible.ToInt64(IFormatProvider)

Deze conversie wordt niet ondersteund. Als u deze conversie probeert te maken, wordt er een InvalidCastException.

IConvertible.ToSByte(IFormatProvider)

Deze conversie wordt niet ondersteund. Als u deze conversie probeert te maken, wordt er een InvalidCastException.

IConvertible.ToSingle(IFormatProvider)

Deze conversie wordt niet ondersteund. Als u deze conversie probeert te maken, wordt er een InvalidCastException.

IConvertible.ToType(Type, IFormatProvider)

Converteert het huidige DBNull object naar het opgegeven type.

IConvertible.ToUInt16(IFormatProvider)

Deze conversie wordt niet ondersteund. Als u deze conversie probeert te maken, wordt er een InvalidCastException.

IConvertible.ToUInt32(IFormatProvider)

Deze conversie wordt niet ondersteund. Als u deze conversie probeert te maken, wordt er een InvalidCastException.

IConvertible.ToUInt64(IFormatProvider)

Deze conversie wordt niet ondersteund. Als u deze conversie probeert te maken, wordt er een InvalidCastException.

Van toepassing op

Zie ook