DataTableReader.GetValue(Int32) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
获取指定列以本机格式表示的值。
public:
override System::Object ^ GetValue(int ordinal);
public override object GetValue (int ordinal);
override this.GetValue : int -> obj
Public Overrides Function GetValue (ordinal As Integer) As Object
参数
- ordinal
- Int32
从零开始的列序号。
返回
指定列的值。 此方法为 null 列返回 DBNull
。
例外
传递的索引超出了 0 到 FieldCount -1 的范围。
尝试从已删除的行中检索数据。
尝试读取或访问关闭的 DataTableReader 中的列。
示例
下面的示例循环访问 中当前行中的所有列,显示每列 DataTableReader的内容和列名。 通常,如果你的意图是处理 由 DataTableReader检索的行中的所有列,请考虑改用 GetValues 方法,因为它更有效。
private static void GetAllValues(DataTableReader reader)
{
// Given a DataTableReader, retrieve the value of
// each column, and display the name, value, and type.
// Make sure you have called reader.Read at least once before
// calling this procedure.
// Loop through all the columns.
object value = null;
for (int i = 0; i < reader.FieldCount; i++)
{
if (reader.IsDBNull(i))
{
value = "<NULL>";
}
else
{
value = reader.GetValue(i);
}
Console.WriteLine("{0}: {1} ({2})", reader.GetName(i),
value, reader.GetFieldType(i).Name);
}
}
Private Sub GetAllValues(ByVal reader As DataTableReader)
' Given a DataTableReader, retrieve the value of
' each column, and display the name, value, and type.
' Make sure you've called reader.Read at least once before
' calling this procedure.
' Loop through all the columns.
Dim value As Object
For i As Integer = 0 To reader.FieldCount - 1
If reader.IsDBNull(i) Then
value = "<NULL>"
Else
value = reader.GetValue(i)
End If
Console.WriteLine("{0}: {1} ({2})", reader.GetName(i), _
value, reader.GetFieldType(i).Name)
Next
End Sub
注解
虽然可以在调用此方法之前调用 IsDBNull 以查看是否存在 null 值,但不必执行此操作。