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* 方法,读取流时也可对其进行调用。

在连接字符串中指定 Context Connection=true

尝试读取不存在的列。

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

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

取消令牌已取消。 此异常存储在返回的任务中。

注解

T 可以是以下类型之一:

布尔 Byte Char DateTime
DateTimeOffset 小数 Double Float
Guid Int16 Int32 Int64
SqlBoolean SqlByte SqlDateTime SqlDecimal
SqlDouble SqlGuid SqlInt16 SqlInt32
SqlInt64 SqlMoney SqlSingle SqlString
String UDT,可以是任何用 标记的 SqlUserDefinedTypeAttributeCLR 类型。

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

适用于