DBNull Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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() | |
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. |