Sdílet prostřednictvím


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 výstupu řetězce 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 toho, aby pouze neměl hodnotu. Objekt DBNull představuje neexistující sloupec. Kromě toho komunikace modelu COM používá DBNull třídu k rozlišení mezi variantou VT_NULL, která označuje neexistující hodnotu, a VT_EMPTY variantou, 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, i když většina ADO.NET zprostředkovatelé dat automaticky přiřazují hodnoty DBNull , pokud pole nemá platnou hodnotu. Můžete zjistit, zda hodnota načtená z databázového pole je DBNull hodnota 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 je DBNull.Valuehodnota databázového pole . Patří mezi ně funkce Jazyka Visual Basic IsDBNull , Convert.IsDBNull metoda DataTableReader.IsDBNull , metoda a IDataRecord.IsDBNull metoda.

Nezaměňujte pojem objektově orientovaného programovacího null jazyka s objektem DBNull . V objektově orientovaném programovacím jazyce znamená null absenci odkazu na objekt. DBNull představuje neinicializovaný variantní nebo neexistující sloupec databáze.

Pole

Value

Představuje jedinou instanci DBNull třídy.

Metody

Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

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

Slouží jako výchozí hashovací funkce.

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

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

GetType()

Získá aktuální Type instanci.

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

TypeCode Získá hodnotu pro DBNull.

MemberwiseClone()

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

(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í

IConvertible.ToBoolean(IFormatProvider)

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

IConvertible.ToByte(IFormatProvider)

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

IConvertible.ToChar(IFormatProvider)

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

IConvertible.ToDateTime(IFormatProvider)

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

IConvertible.ToDecimal(IFormatProvider)

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

IConvertible.ToDouble(IFormatProvider)

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

IConvertible.ToInt16(IFormatProvider)

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

IConvertible.ToInt32(IFormatProvider)

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

IConvertible.ToInt64(IFormatProvider)

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

IConvertible.ToSByte(IFormatProvider)

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

IConvertible.ToSingle(IFormatProvider)

Tento převod není podporován. Pokus o provedení tohoto převodu vyvolá chybu 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á chybu InvalidCastException.

IConvertible.ToUInt32(IFormatProvider)

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

IConvertible.ToUInt64(IFormatProvider)

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

Platí pro

Viz také