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
取消指示,用于对应该取消操作的通知进行传播。 此构造函数不对取消做保证。 设置为 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 流式处理支持。