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

取消指令,它传播应取消操作的通知。 这不能保证取消。 使此方法等效IsDBNull(Int32)的设置CancellationToken.None。 返回的任务必须标记为已取消。

返回

Task<T>

返回的类型对象。

例外

连接在数据检索期间会删除或关闭。

SqlDataReader 数据检索期间关闭。

没有可供读取的数据(例如,第一个 Read() 尚未调用或返回 false)。

尝试在顺序模式下读取以前读取的列。

正在进行异步操作。 这适用于在顺序模式下运行时的所有 Get* 方法,因为读取流时可以调用它们。

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

尝试读取不存在的列。

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

T与SQL Server返回的类型不匹配,也不能强制转换。

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

注解

T 可以是以下类型之一:

布尔值, Byte、Char、DateTime、DateTimeOffset、Decimal、Double、Float、Guid、Int16、Int32、Int64、SqlBoolean、SqlByte、SqlDateTime、SqlDecimal、SqlDouble、SqlGuid、SqlInt16、SqlInt32、SqlInt64、SqlMoney、SqlSingle、SqlString、String 或 UDT(标记的任何 SqlUserDefinedTypeAttributeCLR 类型)。

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

适用于