DBNull Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Vertegenwoordigt een niet-bestaande waarde. Deze klasse kan niet worden overgenomen.
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
- Overname
-
DBNull
- Kenmerken
- Implementeringen
Voorbeelden
In het volgende voorbeeld wordt de DBNull.Value.Equals methode aangeroepen om te bepalen of een databaseveld in een database met contactpersonen een geldige waarde heeft. Als dit het geval is, wordt de veldwaarde toegevoegd aan de tekenreeksuitvoer in een 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
Opmerkingen
De DBNull klasse vertegenwoordigt een niet-bestaande waarde. In een database kan een kolom in een rij van een tabel bijvoorbeeld helemaal geen gegevens bevatten. Dat wil gezegd dat de kolom helemaal niet bestaat in plaats van alleen geen waarde te hebben. Een DBNull object vertegenwoordigt de niet-bestaande kolom. Daarnaast maakt COM-interop gebruik van de DBNull klasse om onderscheid te maken tussen een VT_NULL variant, die een niet-bestaande waarde aangeeft en een VT_EMPTY variant, die een niet-opgegeven waarde aangeeft.
Het DBNull type is een singleton-klasse, wat betekent dat er slechts één DBNull object bestaat. Het DBNull.Value lid vertegenwoordigt het enige DBNull object.
DBNull.Value kan worden gebruikt om expliciet een niet-bestaande waarde toe te wijzen aan een databaseveld, hoewel de meeste ADO.NET gegevensproviders automatisch waarden van DBNull toewijzen wanneer een veld geen geldige waarde heeft. U kunt bepalen of een waarde die is opgehaald uit een databaseveld een DBNull waarde is door de waarde van dat veld door te geven aan de DBNull.Value.Equals methode. Sommige talen en databaseobjecten leveren echter methoden waarmee u gemakkelijker kunt bepalen of de waarde van een databaseveld is DBNull.Value. Deze omvatten de functie Visual Basic IsDBNull, de methode Convert.IsDBNull, de methode DataTableReader.IsDBNull en de methode IDataRecord.IsDBNull.
Verwar het begrip in null een objectgeoriënteerde programmeertaal niet met een DBNull object. In een objectgeoriënteerde programmeertaal null betekent het ontbreken van een verwijzing naar een object.
DBNull vertegenwoordigt een niet-geïnitialiseerde variant of niet-bestaande databasekolom.
Velden
| Name | Description |
|---|---|
| Value |
Vertegenwoordigt het enige exemplaar van de DBNull klasse. |
Methoden
| Name | Description |
|---|---|
| Equals(Object) |
Bepaalt of het opgegeven object gelijk is aan het huidige object. (Overgenomen van Object) |
| GetHashCode() |
Fungeert als de standaardhashfunctie. (Overgenomen van Object) |
| GetObjectData(SerializationInfo, StreamingContext) |
Verouderd.
Implementeert de ISerializable interface en retourneert de gegevens die nodig zijn om het DBNull object te serialiseren. |
| GetType() |
Hiermee haalt u de Type huidige instantie op. (Overgenomen van Object) |
| GetTypeCode() | |
| MemberwiseClone() |
Hiermee maakt u een ondiepe kopie van de huidige Object. (Overgenomen van Object) |
| ToString() |
Retourneert een lege tekenreeks (Empty). |
| ToString(IFormatProvider) |
Retourneert een lege tekenreeks met behulp van de opgegeven IFormatProvider. |
Expliciete interface-implementaties
| Name | Description |
|---|---|
| IConvertible.ToBoolean(IFormatProvider) |
Deze conversie wordt niet ondersteund. Als u deze conversie probeert te maken, wordt er een InvalidCastException. |
| IConvertible.ToByte(IFormatProvider) |
Deze conversie wordt niet ondersteund. Als u deze conversie probeert te maken, wordt er een InvalidCastException. |
| IConvertible.ToChar(IFormatProvider) |
Deze conversie wordt niet ondersteund. Als u deze conversie probeert te maken, wordt er een InvalidCastException. |
| IConvertible.ToDateTime(IFormatProvider) |
Deze conversie wordt niet ondersteund. Als u deze conversie probeert te maken, wordt er een InvalidCastException. |
| IConvertible.ToDecimal(IFormatProvider) |
Deze conversie wordt niet ondersteund. Als u deze conversie probeert te maken, wordt er een InvalidCastException. |
| IConvertible.ToDouble(IFormatProvider) |
Deze conversie wordt niet ondersteund. Als u deze conversie probeert te maken, wordt er een InvalidCastException. |
| IConvertible.ToInt16(IFormatProvider) |
Deze conversie wordt niet ondersteund. Als u deze conversie probeert te maken, wordt er een InvalidCastException. |
| IConvertible.ToInt32(IFormatProvider) |
Deze conversie wordt niet ondersteund. Als u deze conversie probeert te maken, wordt er een InvalidCastException. |
| IConvertible.ToInt64(IFormatProvider) |
Deze conversie wordt niet ondersteund. Als u deze conversie probeert te maken, wordt er een InvalidCastException. |
| IConvertible.ToSByte(IFormatProvider) |
Deze conversie wordt niet ondersteund. Als u deze conversie probeert te maken, wordt er een InvalidCastException. |
| IConvertible.ToSingle(IFormatProvider) |
Deze conversie wordt niet ondersteund. Als u deze conversie probeert te maken, wordt er een InvalidCastException. |
| IConvertible.ToType(Type, IFormatProvider) |
Converteert het huidige DBNull object naar het opgegeven type. |
| IConvertible.ToUInt16(IFormatProvider) |
Deze conversie wordt niet ondersteund. Als u deze conversie probeert te maken, wordt er een InvalidCastException. |
| IConvertible.ToUInt32(IFormatProvider) |
Deze conversie wordt niet ondersteund. Als u deze conversie probeert te maken, wordt er een InvalidCastException. |
| IConvertible.ToUInt64(IFormatProvider) |
Deze conversie wordt niet ondersteund. Als u deze conversie probeert te maken, wordt er een InvalidCastException. |