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 シングルトン クラスです。つまり、オブジェクトは 1 つだけ DBNull 存在します。 メンバーは DBNull.Value 、唯一 DBNull の オブジェクトを表します。
DBNull.Value を使用すると、存在しない値をデータベース フィールドに明示的に割り当てることができますが、ほとんどの ADO.NET データ プロバイダーは、フィールドに有効な値がない場合に の DBNull 値を自動的に割り当てます。 データベース フィールドから取得した値が DBNull 値であるかどうかを判断するには、そのフィールドの値を メソッドに DBNull.Value.Equals
渡します。 ただし、一部の言語とデータベース オブジェクトでは、データベース フィールドの値が であるかどうかを判断しやすくするメソッドが用意されています DBNull.Value。 これには、Visual Basic IsDBNull
関数、メソッド、Convert.IsDBNullDataTableReader.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 を使用して、空の文字列を返します。 |
明示的なインターフェイスの実装
適用対象
こちらもご覧ください
.NET