Share via


SqlDataReader.GetFieldValue<T>(Int32) 方法

定义

同步获取作为类型的指定列的值。 GetFieldValueAsync<T>(Int32, CancellationToken) 是此方法的异步版本。

public:
generic <typename T>
 override T GetFieldValue(int i);
public override T GetFieldValue<T> (int i);
override this.GetFieldValue : int -> 'T
Public Overrides Function GetFieldValue(Of T) (i As Integer) As T

类型参数

T

要返回的值的类型。

参数

i
Int32

要检索的列。

返回

T

返回的类型对象。

例外

连接中断或在数据检索期间已关闭。

数据检索期间,SqlDataReader 处于关闭状态。

没有要读取的就绪数据 (例如,第一个 Read() 未被调用或返回错误)。

按顺序模式尝试读取上一步骤中读取的列。

没有正在进行的异步操作。 以顺序模式运行时,这适用于所有 Get* 方法,读取流时也可对其进行调用。

尝试读取不存在的列。

该列中的值为 null (IsDBNull(Int32) == true),检索非 SQL 类型。

T 与 SQL Server 返回的类型不匹配或无法进行强制转换。

注解

T 可以是以下类型之一:

布尔 Byte Char DateOnly (.NET 6 或更高版本)
DateTime DateTimeOffset 小数 Double
Float Guid Int16 Int32
Int64 SqlBoolean SqlByte SqlDateTime
SqlDecimal SqlDouble SqlGuid SqlInt16
SqlInt32 SqlInt64 SqlMoney SqlSingle
SqlString Stream 字符串 TextReader
TimeOnly (.NET 6 或更高版本) XmlReader UDT,可以是任何用 标记的 SqlUserDefinedTypeAttributeCLR 类型。

有关详细信息,请参阅 SqlClient 流式处理支持

适用于