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 řetězcovém výstupu 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 aby neměl hodnotu. Objekt DBNull představuje neexistující sloupec. Kromě toho komunikace modelu COM používá DBNull třídu k rozlišení mezi VT_NULL variantou, která označuje neexistující hodnotu, a variantu VT_EMPTY, 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, přestože většina poskytovatelů dat ADO.NET automaticky přiřazuje hodnoty DBNull, pokud pole nemá platnou hodnotu. Hodnotu načtenou DBNull z pole databáze můžete určit 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 hodnota pole databáze je DBNull.Value. Patří mezi ně funkce Visual Basic IsDBNull, metoda Convert.IsDBNull, metoda DataTableReader.IsDBNull a metoda IDataRecord.IsDBNull.
Nezaměňujte pojem null v objektově orientovaném programovacím jazyce s objektem DBNull . V objektově orientovaném programovacím jazyce null znamená nepřítomnost odkazu na objekt.
DBNull představuje neinicializovaný nebo neexistující databázový sloupec.
Pole
| Name | Description |
|---|---|
| Value |
Představuje jedinou instanci DBNull třídy. |
Metody
| Name | Description |
|---|---|
| Equals(Object) |
Určuje, zda je zadaný objekt roven aktuálnímu objektu. (Zděděno od Object) |
| GetHashCode() |
Slouží jako výchozí funkce hash. (Zděděno od Object) |
| GetObjectData(SerializationInfo, StreamingContext) |
Zastaralé.
Implementuje ISerializable rozhraní a vrací data potřebná k serializaci objektu DBNull . |
| GetType() |
Získá Type aktuální instance. (Zděděno od Object) |
| GetTypeCode() | |
| MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Object. (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í
| Name | Description |
|---|---|
| IConvertible.ToBoolean(IFormatProvider) |
Tento převod není podporován. Pokus o provedení tohoto převodu vyvolá .InvalidCastException |
| IConvertible.ToByte(IFormatProvider) |
Tento převod není podporován. Pokus o provedení tohoto převodu vyvolá .InvalidCastException |
| IConvertible.ToChar(IFormatProvider) |
Tento převod není podporován. Pokus o provedení tohoto převodu vyvolá .InvalidCastException |
| IConvertible.ToDateTime(IFormatProvider) |
Tento převod není podporován. Pokus o provedení tohoto převodu vyvolá .InvalidCastException |
| IConvertible.ToDecimal(IFormatProvider) |
Tento převod není podporován. Pokus o provedení tohoto převodu vyvolá .InvalidCastException |
| IConvertible.ToDouble(IFormatProvider) |
Tento převod není podporován. Pokus o provedení tohoto převodu vyvolá .InvalidCastException |
| IConvertible.ToInt16(IFormatProvider) |
Tento převod není podporován. Pokus o provedení tohoto převodu vyvolá .InvalidCastException |
| IConvertible.ToInt32(IFormatProvider) |
Tento převod není podporován. Pokus o provedení tohoto převodu vyvolá .InvalidCastException |
| IConvertible.ToInt64(IFormatProvider) |
Tento převod není podporován. Pokus o provedení tohoto převodu vyvolá .InvalidCastException |
| IConvertible.ToSByte(IFormatProvider) |
Tento převod není podporován. Pokus o provedení tohoto převodu vyvolá .InvalidCastException |
| IConvertible.ToSingle(IFormatProvider) |
Tento převod není podporován. Pokus o provedení tohoto převodu vyvolá .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á .InvalidCastException |
| IConvertible.ToUInt32(IFormatProvider) |
Tento převod není podporován. Pokus o provedení tohoto převodu vyvolá .InvalidCastException |
| IConvertible.ToUInt64(IFormatProvider) |
Tento převod není podporován. Pokus o provedení tohoto převodu vyvolá .InvalidCastException |