DBNull Třída

Definice

Představuje neexistující hodnotu. Tato třída se nemůže dědit.

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
Dědičnost
DBNull
Atributy
Implementuje

Příklady

Následující příklad volá metodu DBNull.Value.Equals k určení, zda pole databáze v databázi kontaktů má platnou hodnotu. Pokud ano, hodnota pole se připojí k řetězcovém výstupu v popisku.

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

Poznámky

Třída DBNull představuje neexistující hodnotu. V databázi například sloupec v řádku tabulky nemusí obsahovat žádná data. To znamená, že sloupec vůbec neexistuje, místo aby neměl hodnotu. Objekt DBNull představuje neexistující sloupec. Kromě toho komunikace modelu COM používá DBNull třídu k rozlišení mezi VT_NULL variantou, která označuje neexistující hodnotu, a variantu VT_EMPTY, která označuje nezadanou hodnotu.

Typ DBNull je singletonová třída, což znamená, že existuje pouze jeden DBNull objekt. Člen DBNull.Value představuje jediný DBNull objekt. DBNull.Value lze použít k explicitní přiřazení neexistující hodnoty k databázovému poli, přestože většina poskytovatelů dat ADO.NET automaticky přiřazuje hodnoty DBNull, pokud pole nemá platnou hodnotu. Hodnotu načtenou DBNull z pole databáze můžete určit předáním hodnoty tohoto pole metodě DBNull.Value.Equals . Některé jazyky a databázové objekty však poskytují metody, které usnadňují určení, zda hodnota pole databáze je DBNull.Value. Patří mezi ně funkce Visual Basic IsDBNull, metoda Convert.IsDBNull, metoda DataTableReader.IsDBNull a metoda IDataRecord.IsDBNull.

Nezaměňujte pojem null v objektově orientovaném programovacím jazyce s objektem DBNull . V objektově orientovaném programovacím jazyce null znamená nepřítomnost odkazu na objekt. DBNull představuje neinicializovaný nebo neexistující databázový sloupec.

Pole

Name Description
Value

Představuje jedinou instanci DBNull třídy.

Metody

Name Description
Equals(Object)

Určuje, zda je zadaný objekt roven aktuálnímu objektu.

(Zděděno od Object)
GetHashCode()

Slouží jako výchozí funkce hash.

(Zděděno od Object)
GetObjectData(SerializationInfo, StreamingContext)
Zastaralé.

Implementuje ISerializable rozhraní a vrací data potřebná k serializaci objektu DBNull .

GetType()

Získá Type aktuální instance.

(Zděděno od Object)
GetTypeCode()

TypeCode Získá hodnotu pro DBNull.

MemberwiseClone()

Vytvoří mělkou kopii aktuálního Object.

(Zděděno od Object)
ToString()

Vrátí prázdný řetězec (Empty).

ToString(IFormatProvider)

Vrátí prázdný řetězec pomocí zadaného IFormatProviderřetězce .

Explicitní implementace rozhraní

Name Description
IConvertible.ToBoolean(IFormatProvider)

Tento převod není podporován. Pokus o provedení tohoto převodu vyvolá .InvalidCastException

IConvertible.ToByte(IFormatProvider)

Tento převod není podporován. Pokus o provedení tohoto převodu vyvolá .InvalidCastException

IConvertible.ToChar(IFormatProvider)

Tento převod není podporován. Pokus o provedení tohoto převodu vyvolá .InvalidCastException

IConvertible.ToDateTime(IFormatProvider)

Tento převod není podporován. Pokus o provedení tohoto převodu vyvolá .InvalidCastException

IConvertible.ToDecimal(IFormatProvider)

Tento převod není podporován. Pokus o provedení tohoto převodu vyvolá .InvalidCastException

IConvertible.ToDouble(IFormatProvider)

Tento převod není podporován. Pokus o provedení tohoto převodu vyvolá .InvalidCastException

IConvertible.ToInt16(IFormatProvider)

Tento převod není podporován. Pokus o provedení tohoto převodu vyvolá .InvalidCastException

IConvertible.ToInt32(IFormatProvider)

Tento převod není podporován. Pokus o provedení tohoto převodu vyvolá .InvalidCastException

IConvertible.ToInt64(IFormatProvider)

Tento převod není podporován. Pokus o provedení tohoto převodu vyvolá .InvalidCastException

IConvertible.ToSByte(IFormatProvider)

Tento převod není podporován. Pokus o provedení tohoto převodu vyvolá .InvalidCastException

IConvertible.ToSingle(IFormatProvider)

Tento převod není podporován. Pokus o provedení tohoto převodu vyvolá .InvalidCastException

IConvertible.ToType(Type, IFormatProvider)

Převede aktuální DBNull objekt na zadaný typ.

IConvertible.ToUInt16(IFormatProvider)

Tento převod není podporován. Pokus o provedení tohoto převodu vyvolá .InvalidCastException

IConvertible.ToUInt32(IFormatProvider)

Tento převod není podporován. Pokus o provedení tohoto převodu vyvolá .InvalidCastException

IConvertible.ToUInt64(IFormatProvider)

Tento převod není podporován. Pokus o provedení tohoto převodu vyvolá .InvalidCastException

Platí pro

Viz také