Bagikan melalui


DBNull Kelas

Definisi

Mewakili nilai yang tidak ada. Kelas ini tidak dapat diwariskan.

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
Warisan
DBNull
Atribut
Penerapan

Contoh

Contoh berikut memanggil DBNull.Value.Equals metode untuk menentukan apakah bidang database dalam database kontak memiliki nilai yang valid. Jika ya, nilai bidang ditambahkan ke output string dalam 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

Keterangan

Kelas DBNull mewakili nilai yang tidak ada. Dalam database, misalnya, kolom dalam baris tabel mungkin tidak berisi data apa pun. Artinya, kolom dianggap tidak ada sama sekali alih-alih hanya tidak memiliki nilai. Objek DBNull mewakili kolom yang tidak ada. Selain itu, interop COM menggunakan DBNull kelas untuk membedakan antara varian VT_NULL, yang menunjukkan nilai yang tidak ada, dan varian VT_EMPTY, yang menunjukkan nilai yang tidak ditentukan.

Jenisnya DBNull adalah kelas singleton, yang berarti hanya ada satu DBNull objek. Anggota DBNull.Value mewakili satu-satu DBNull objek. DBNull.Value dapat digunakan untuk secara eksplisit menetapkan nilai yang tidak ada ke bidang database, meskipun sebagian besar penyedia data ADO.NET secara otomatis menetapkan nilai DBNull ketika bidang tidak memiliki nilai yang valid. Anda dapat menentukan apakah nilai yang diambil dari bidang database adalah DBNull nilai dengan meneruskan nilai bidang tersebut ke DBNull.Value.Equals metode . Namun, beberapa bahasa dan objek database menyediakan metode yang memudahkan untuk menentukan apakah nilai bidang database adalah DBNull.Value. Ini termasuk fungsi Visual Basic IsDBNull , Convert.IsDBNull metode , DataTableReader.IsDBNull metode , dan IDataRecord.IsDBNull metode .

Jangan membingungkan gagasan null dalam bahasa pemrograman berorientasi objek dengan DBNull objek. Dalam bahasa pemrograman berorientasi objek, null berarti tidak adanya referensi ke objek. DBNull mewakili varian yang tidak diinisialisasi atau kolom database yang tidak ada.

Bidang

Value

Mewakili satu-satunya DBNull instans kelas.

Metode

Equals(Object)

Menentukan apakah objek yang ditentukan sama dengan objek saat ini.

(Diperoleh dari Object)
GetHashCode()

Berfungsi sebagai fungsi hash default.

(Diperoleh dari Object)
GetObjectData(SerializationInfo, StreamingContext)
Kedaluwarsa.

ISerializable Mengimplementasikan antarmuka dan mengembalikan data yang diperlukan untuk menserialisasikan DBNull objek.

GetType()

Mendapatkan instans Type saat ini.

(Diperoleh dari Object)
GetTypeCode()

TypeCode Mendapatkan nilai untuk DBNull.

MemberwiseClone()

Membuat salinan dangkal dari yang saat ini Object.

(Diperoleh dari Object)
ToString()

Mengembalikan string kosong (Empty).

ToString(IFormatProvider)

Mengembalikan string kosong menggunakan yang ditentukan IFormatProvider.

Implementasi Antarmuka Eksplisit

IConvertible.ToBoolean(IFormatProvider)

Konversi ini tidak didukung. Mencoba membuat konversi ini melempar InvalidCastException.

IConvertible.ToByte(IFormatProvider)

Konversi ini tidak didukung. Mencoba membuat konversi ini melempar InvalidCastException.

IConvertible.ToChar(IFormatProvider)

Konversi ini tidak didukung. Mencoba membuat konversi ini melempar InvalidCastException.

IConvertible.ToDateTime(IFormatProvider)

Konversi ini tidak didukung. Mencoba membuat konversi ini melempar InvalidCastException.

IConvertible.ToDecimal(IFormatProvider)

Konversi ini tidak didukung. Mencoba membuat konversi ini melempar InvalidCastException.

IConvertible.ToDouble(IFormatProvider)

Konversi ini tidak didukung. Mencoba membuat konversi ini melempar InvalidCastException.

IConvertible.ToInt16(IFormatProvider)

Konversi ini tidak didukung. Mencoba membuat konversi ini melempar InvalidCastException.

IConvertible.ToInt32(IFormatProvider)

Konversi ini tidak didukung. Mencoba membuat konversi ini melempar InvalidCastException.

IConvertible.ToInt64(IFormatProvider)

Konversi ini tidak didukung. Mencoba membuat konversi ini melempar InvalidCastException.

IConvertible.ToSByte(IFormatProvider)

Konversi ini tidak didukung. Mencoba membuat konversi ini melempar InvalidCastException.

IConvertible.ToSingle(IFormatProvider)

Konversi ini tidak didukung. Mencoba membuat konversi ini melempar InvalidCastException.

IConvertible.ToType(Type, IFormatProvider)

Mengonversi objek saat ini DBNull ke tipe yang ditentukan.

IConvertible.ToUInt16(IFormatProvider)

Konversi ini tidak didukung. Mencoba membuat konversi ini melempar InvalidCastException.

IConvertible.ToUInt32(IFormatProvider)

Konversi ini tidak didukung. Mencoba membuat konversi ini melempar InvalidCastException.

IConvertible.ToUInt64(IFormatProvider)

Konversi ini tidak didukung. Mencoba membuat konversi ini melempar InvalidCastException.

Berlaku untuk

Lihat juga