DBNull.Value 字段
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
表示 DBNull 类的唯一实例。
public: static initonly DBNull ^ Value;
public static readonly DBNull Value;
staticval mutable Value : DBNull
Public Shared ReadOnly Value As 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.Value 属性将对象值显式分配给 DBNull 该字段。 但是,大多数数据提供程序会自动执行此操作。
若要评估数据库字段以确定其值是否为 DBNull,可以将字段值传递给 DBNull.Value.Equals
方法。 但是,此方法很少使用,因为有多种其他方法可以评估数据库字段是否存在缺失数据。 其中包括 Visual Basic IsDBNull
函数、 Convert.IsDBNull 方法、 DataTableReader.IsDBNull 方法、 IDataRecord.IsDBNull 方法和几个其他方法。