Share via


SqlDataReader.GetFieldValueAsync<T>(Int32, CancellationToken) 方法

定义

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

public:
generic <typename T>
 override System::Threading::Tasks::Task<T> ^ GetFieldValueAsync(int i, System::Threading::CancellationToken cancellationToken);
public override System.Threading.Tasks.Task<T> GetFieldValueAsync<T> (int i, System.Threading.CancellationToken cancellationToken);
override this.GetFieldValueAsync : int * System.Threading.CancellationToken -> System.Threading.Tasks.Task<'T>
Public Overrides Function GetFieldValueAsync(Of T) (i As Integer, cancellationToken As CancellationToken) As Task(Of T)

类型参数

T

要返回的值的类型。

参数

i
Int32

要检索的列。

cancellationToken
CancellationToken

取消指示,用于对应该取消操作的通知进行传播。 此构造函数不对取消做保证。 设置为 CancellationToken.None 将此方法等效于 IsDBNull(Int32)。 返回任务必须标记为已取消。

返回

Task<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 流式处理支持

适用于