Поделиться через


DataReaderExtensions.IsDBNullAsync Метод

Определение

Асинхронно получает значение, указывающее, содержит ли столбец несуществующие или пропущенные значения.

public static System.Threading.Tasks.Task<bool> IsDBNullAsync (this System.Data.Common.DbDataReader reader, string name, System.Threading.CancellationToken cancellationToken = default);
static member IsDBNullAsync : System.Data.Common.DbDataReader * string * System.Threading.CancellationToken -> System.Threading.Tasks.Task<bool>
<Extension()>
Public Function IsDBNullAsync (reader As DbDataReader, name As String, Optional cancellationToken As CancellationToken = Nothing) As Task(Of Boolean)

Параметры

reader
DbDataReader

Модуль чтения данных, из которого получается значение столбца.

name
String

Имя столбца.

cancellationToken
CancellationToken

Необязательный токен для отмены асинхронной операции.

Возвращаемое значение

Объект Task<TResult>, свойство Result которого равно true, если указанное значение столбца эквивалентно значению DBNull, или false в противном случае.

Исключения

Соединение было удалено или закрыто во время получения данных.

-или-

Модуль чтения данных закрыт во время получения данных.

-или-

Не существует данных, готовых для чтения (например, первый объект Read() не был вызван или вернул значение false).

-или-

Попытка чтения ранее считанного столбца в последовательном режиме.

-или-

Выполнялась асинхронная операция. Относится ко всем методам Get* при работе в последовательном режиме, так как они могут вызываться при чтении потока.

Заданное имя недопустимо для имени столбца.

Маркер отмены был отменен. Это исключение сохраняется в возвращаемой задаче.

Комментарии

Этот асинхронный метод необходим только для того, чтобы избежать блокировки вызывающего потока при создании средства чтения в последовательном режиме.

Если последовательный режим не указан, все значения столбцов должны становиться доступными в памяти при каждом завершении ReadAsync, а вызов синхронной версии метода не должен блокировать вызывающий поток.

Реализация этого асинхронного метода по умолчанию вызывает его синхронный аналог и возвращает завершенную задачу, потенциально блокируя вызывающий поток. Реализация по умолчанию также возвращает отмененную задачу, если передан уже отмененный токен отмены.

Поставщики данных, поддерживающие асинхронное программирование , должны переопределить стандартное расширение с помощью асинхронных операций ввода-вывода.

Этот метод принимает токен отмены, который может использоваться для запроса ранней отмены операции. Реализации могут игнорировать данный запрос.

Другие методы и свойства объекта DbDataReader не должны вызываться, когда возвращаемая задача еще не завершена.

Этот метод сохраняет в задаче все исключения, не относящиеся к использованию, которые может создавать синхронный аналог метода. Если исключение сохраняется в возвращаемой задаче, это исключение будет создано при ожидании задачи. Исключения использования, такие как ArgumentException, по-прежнему создаются синхронно. Хранимые исключения см. в разделе исключения, создаваемые IsDBNull(DbDataReader, String).

Применяется к