DBNull クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
存在しない値を表します。 このクラスは継承できません。
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
- 継承
-
DBNull
- 属性
- 実装
例
次の例では、 DBNull.Value.Equals メソッドを呼び出して、連絡先データベースのデータベース フィールドに有効な値があるかどうかを判断します。 その場合、フィールド値はラベル内の文字列出力に追加されます。
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
注釈
DBNull クラスは存在しない値を表します。 たとえば、データベースでは、テーブルの行の列にデータが含まれていない場合があります。 つまり、列は単に値を持たないのではなく、まったく存在しないと見なされます。 DBNull オブジェクトは、存在しない列を表します。 さらに、COM 相互運用機能では、 DBNull クラスを使用して、存在しない値を示すVT_NULLバリアントと、指定されていない値を示すVT_EMPTYバリアントを区別します。
DBNull型はシングルトン クラスであり、DBNull オブジェクトが 1 つだけ存在します。
DBNull.Value メンバーは、唯一のDBNull オブジェクトを表します。
DBNull.Valueを使用すると、存在しない値をデータベース フィールドに明示的に割り当てることができますが、ほとんどの ADO.NET データ プロバイダーは、フィールドに有効な値がない場合DBNull の値を自動的に割り当てます。 データベース フィールドから取得した値が DBNull 値であるかどうかを判断するには、そのフィールドの値を DBNull.Value.Equals メソッドに渡します。 ただし、一部の言語およびデータベース オブジェクトには、データベース フィールドの値が DBNull.Valueされているかどうかを判断しやすくするメソッドが用意されています。 これには、Visual Basic IsDBNull 関数、Convert.IsDBNull メソッド、DataTableReader.IsDBNull メソッド、および IDataRecord.IsDBNull メソッドが含まれます。
オブジェクト指向プログラミング言語の null の概念を、 DBNull オブジェクトと混同しないでください。 オブジェクト指向プログラミング言語では、 null はオブジェクトへの参照がないことを意味します。
DBNull は、初期化されていないバリアントまたは存在しないデータベース列を表します。
フィールド
| 名前 | 説明 |
|---|---|
| Value |
DBNull クラスの唯一のインスタンスを表します。 |
メソッド
| 名前 | 説明 |
|---|---|
| Equals(Object) |
指定したオブジェクトが現在のオブジェクトと等しいかどうかを判断します。 (継承元 Object) |
| GetHashCode() |
既定のハッシュ関数として機能します。 (継承元 Object) |
| GetObjectData(SerializationInfo, StreamingContext) |
古い.
ISerializable インターフェイスを実装し、DBNull オブジェクトのシリアル化に必要なデータを返します。 |
| GetType() |
現在のインスタンスの Type を取得します。 (継承元 Object) |
| GetTypeCode() | |
| MemberwiseClone() |
現在の Objectの簡易コピーを作成します。 (継承元 Object) |
| ToString() |
空の文字列 (Empty) を返します。 |
| ToString(IFormatProvider) |
指定した IFormatProviderを使用して空の文字列を返します。 |