SqlDataReader.GetFieldValueAsync<T>(Int32, CancellationToken) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
以异步方式获取指定列的值作为类型。 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。 返回的任务必须标记为已取消。
返回
返回的类型对象。
例外
连接在数据检索期间会删除或关闭。
在 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 流式处理支持。