DBNull.Value 字段
定义
public: static initonly DBNull ^ Value;
public static readonly DBNull Value;
staticval mutable Value : DBNull
Public Shared ReadOnly Value As DBNull
字段值
示例
下面的示例调用 DBNull.Value.Equals
方法来确定联系人数据库中的数据库字段是否具有有效的值。The following example calls the DBNull.Value.Equals
method to determine whether a database field in a contacts database has a valid value. 如果是这样,则将字段值追加到标签中的字符串输出。If it does, the field value is appended to the string output in a label.
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;
}
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 is a singleton class, which means only this instance of this class can exist.
如果某个数据库字段缺少数据,则可以使用 DBNull.Value 属性显式地将 DBNull 对象值分配给该字段。If a database field has missing data, you can use the DBNull.Value property to explicitly assign a DBNull object value to the field. 但是,大多数数据访问接口会自动执行此操作。However, most data providers do this automatically.
若要评估数据库字段以确定它们的值是否为 DBNull ,可以将字段值传递给 DBNull.Value.Equals
方法。To evaluate database fields to determine whether their values are DBNull, you can pass the field value to the DBNull.Value.Equals
method. 但是,这种方法很少使用,因为有许多其他方法可用于计算缺少数据的数据库字段。However, this method is rarely used because there are a number of other ways to evaluate a database field for missing data. 其中包括 Visual Basic IsDBNull
函数、 Convert.IsDBNull 方法、方法、方法以及 DataTableReader.IsDBNull IDataRecord.IsDBNull 其他一些方法。These include the Visual Basic IsDBNull
function, the Convert.IsDBNull method, the DataTableReader.IsDBNull method, the IDataRecord.IsDBNull method, and several other methods.