DataReaderExtensions.IsDBNullAsync Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Obtiene de forma asincrónica un valor que indica si la columna contiene valores inexistentes o que faltan.
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)
Parámetros
- reader
- DbDataReader
Lector de datos del que se va a obtener el valor de columna.
- name
- String
Nombre de la columna.
- cancellationToken
- CancellationToken
Token opcional para cancelar la operación asincrónica.
Devoluciones
Task<TResult> Cuya Result propiedad es true si el valor de columna especificado es equivalente a DBNull o false si no lo es.
Excepciones
La conexión se quitó o cerró durante la recuperación de datos.
O bien
El lector de datos se cierra durante la recuperación de datos.
O bien
No hay datos listos para leerse (por ejemplo, no se ha llamado a la primera Read() o se ha devuelto false).
O bien
Intentar leer una columna de lectura anterior en modo secuencial.
O bien
Hubo una operación asincrónica en curso. Esto se aplica a todos los métodos Get* al ejecutarse en modo secuencial, ya que se podría llamar al leer una secuencia.
El nombre especificado no es un nombre de columna válido.
Se canceló el token de cancelación. Esta excepción se almacena en la tarea devuelta.
Comentarios
Este método asincrónico solo es necesario para evitar bloquear el subproceso de llamada cuando el lector se crea en modo secuencial.
Si no se especifica el modo secuencial, todos los valores de columna deben estar disponibles en la memoria cada vez que se complete ReadAsync y llamar a la versión sincrónica del método no debe bloquear el subproceso que realiza la llamada.
La implementación predeterminada de este método asincrónico invoca a su homólogo sincrónico y devuelve una tarea completada, lo que podría bloquear el subproceso que realiza la llamada. La implementación predeterminada también devuelve una tarea cancelada si se pasa un token de cancelación ya cancelado.
Los proveedores de datos que admiten la programación asincrónica deben invalidar la implementación predeterminada mediante operaciones asincrónicas de E/S.
Este método acepta un token de cancelación que se puede usar para solicitar la cancelación anticipada de la operación. Las implementaciones pueden omitir esta solicitud.
No se deben invocar otros métodos y propiedades del objeto DbDataReader mientras aún no se ha completado la tarea devuelta.
Este método almacena en la tarea que devuelve todas las excepciones de no uso que puede producir el homólogo sincrónico del método. Si se almacena una excepción en la tarea devuelta, se producirá esa excepción cuando se espere la tarea. Las excepciones de uso, como ArgumentException, todavía se producen sincrónicamente. Para las excepciones almacenadas, consulte las excepciones producidas por IsDBNull(DbDataReader, String).