DBNull Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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() | |
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. |