DBNull Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Representerar ett obefintligt värde. Det går inte att ärva den här klassen.
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
- Arv
-
DBNull
- Attribut
- Implementeringar
Exempel
I följande exempel anropas DBNull.Value.Equals metoden för att avgöra om ett databasfält i en kontaktdatabas har ett giltigt värde. Om det gör det läggs fältvärdet till i strängutdata i en etikett.
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
Kommentarer
Klassen DBNull representerar ett obefintligt värde. I en databas kanske till exempel en kolumn i en rad i en tabell inte innehåller några data alls. Kolumnen anses alltså inte finnas alls i stället för att bara ha ett värde. Ett DBNull objekt representerar den obefintliga kolumnen. Dessutom använder DBNull COM interop -klassen för att skilja mellan en VT_NULL variant, vilket indikerar ett obefintligt värde och en VT_EMPTY variant, vilket indikerar ett ospecificerat värde.
Typen DBNull är en singleton-klass, vilket innebär att endast ett DBNull objekt finns. Medlemmen DBNull.Value representerar det enda DBNull objektet.
DBNull.Value kan användas för att uttryckligen tilldela ett obefintligt värde till ett databasfält, även om de flesta ADO.NET-dataleverantörer automatiskt tilldelar värden för DBNull när ett fält inte har ett giltigt värde. Du kan avgöra om ett värde som hämtats från ett databasfält är ett DBNull värde genom att skicka värdet för fältet till DBNull.Value.Equals metoden. Vissa språk och databasobjekt tillhandahåller dock metoder som gör det enklare att avgöra om värdet för ett databasfält är DBNull.Value. Dessa inkluderar funktionen Visual Basic IsDBNull, metoden Convert.IsDBNull, metoden DataTableReader.IsDBNull och metoden IDataRecord.IsDBNull.
Blanda inte ihop begreppet null i ett objektorienterat programmeringsspråk med ett DBNull objekt. I ett objektorienterat programmeringsspråk null innebär det att det inte finns någon referens till ett objekt.
DBNull representerar en onitialiserad variant eller obefintlig databaskolumn.
Fält
| Name | Description |
|---|---|
| Value |
Representerar den enda instansen av DBNull klassen. |
Metoder
| Name | Description |
|---|---|
| Equals(Object) |
Avgör om det angivna objektet är lika med det aktuella objektet. (Ärvd från Object) |
| GetHashCode() |
Fungerar som standard-hash-funktion. (Ärvd från Object) |
| GetObjectData(SerializationInfo, StreamingContext) |
Föråldrad.
Implementerar ISerializable gränssnittet och returnerar de data som behövs för att serialisera DBNull objektet. |
| GetType() |
Hämtar den aktuella instansen Type . (Ärvd från Object) |
| GetTypeCode() | |
| MemberwiseClone() |
Skapar en ytlig kopia av den aktuella Object. (Ärvd från Object) |
| ToString() |
Returnerar en tom sträng (Empty). |
| ToString(IFormatProvider) |
Returnerar en tom sträng med den angivna IFormatProvider. |
Explicita gränssnittsimplementeringar
| Name | Description |
|---|---|
| IConvertible.ToBoolean(IFormatProvider) |
Den här konverteringen stöds inte. Om du försöker göra den här konverteringen genererar en InvalidCastException. |
| IConvertible.ToByte(IFormatProvider) |
Den här konverteringen stöds inte. Om du försöker göra den här konverteringen genererar en InvalidCastException. |
| IConvertible.ToChar(IFormatProvider) |
Den här konverteringen stöds inte. Om du försöker göra den här konverteringen genererar en InvalidCastException. |
| IConvertible.ToDateTime(IFormatProvider) |
Den här konverteringen stöds inte. Om du försöker göra den här konverteringen genererar en InvalidCastException. |
| IConvertible.ToDecimal(IFormatProvider) |
Den här konverteringen stöds inte. Om du försöker göra den här konverteringen genererar en InvalidCastException. |
| IConvertible.ToDouble(IFormatProvider) |
Den här konverteringen stöds inte. Om du försöker göra den här konverteringen genererar en InvalidCastException. |
| IConvertible.ToInt16(IFormatProvider) |
Den här konverteringen stöds inte. Om du försöker göra den här konverteringen genererar en InvalidCastException. |
| IConvertible.ToInt32(IFormatProvider) |
Den här konverteringen stöds inte. Om du försöker göra den här konverteringen genererar en InvalidCastException. |
| IConvertible.ToInt64(IFormatProvider) |
Den här konverteringen stöds inte. Om du försöker göra den här konverteringen genererar en InvalidCastException. |
| IConvertible.ToSByte(IFormatProvider) |
Den här konverteringen stöds inte. Om du försöker göra den här konverteringen genererar en InvalidCastException. |
| IConvertible.ToSingle(IFormatProvider) |
Den här konverteringen stöds inte. Om du försöker göra den här konverteringen genererar en InvalidCastException. |
| IConvertible.ToType(Type, IFormatProvider) |
Konverterar det aktuella DBNull objektet till den angivna typen. |
| IConvertible.ToUInt16(IFormatProvider) |
Den här konverteringen stöds inte. Om du försöker göra den här konverteringen genererar en InvalidCastException. |
| IConvertible.ToUInt32(IFormatProvider) |
Den här konverteringen stöds inte. Om du försöker göra den här konverteringen genererar en InvalidCastException. |
| IConvertible.ToUInt64(IFormatProvider) |
Den här konverteringen stöds inte. Om du försöker göra den här konverteringen genererar en InvalidCastException. |