DataReaderExtensions.IsDBNullAsync Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ottiene in modo asincrono un valore che indica se la colonna contiene valori inesistenti o mancanti.
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)
Parametri
- reader
- DbDataReader
Lettore dati da cui ottenere il valore della colonna.
- name
- String
Nome della colonna.
- cancellationToken
- CancellationToken
Token facoltativo per annullare l'operazione asincrona.
Valori restituiti
Oggetto Task<TResult> la cui Result proprietà è true se il valore della colonna specificato è equivalente a DBNull o false in caso contrario.
Eccezioni
La connessione è stata eliminata o chiusa durante il recupero dei dati.
oppure
Il lettore di dati viene chiuso durante il recupero dei dati.
oppure
Non sono disponibili dati pronti per la lettura(ad esempio, il primo Read() non è stato chiamato o restituito false).
oppure
Tentativo di leggere una colonna di lettura precedente in modalità sequenziale.
oppure
È in corso un'operazione asincrona. Questo vale per tutti i metodi Get* durante l'esecuzione in modalità sequenziale, perché possono essere chiamati durante la lettura di un flusso.
Il nome specificato non è un nome di colonna valido.
Il token di annullamento è stato annullato. Questa eccezione viene archiviata nell'attività restituita.
Commenti
Questo metodo asincrono è necessario solo per evitare di bloccare il thread chiamante quando il lettore viene creato in modalità sequenziale.
Se non viene specificata la modalità sequenziale, tutti i valori di colonna devono diventare disponibili in memoria ogni volta che ReadAsync viene completato e chiamare la versione sincrona del metodo non deve bloccare il thread chiamante.
L'implementazione predefinita di questo metodo asincrono richiama la controparte sincrona e restituisce un'attività completata, bloccando potenzialmente il thread chiamante. L'implementazione predefinita restituisce anche un'attività annullata se è stato passato un token di annullamento già annullato.
I provider di dati che supportano la programmazione asincrona devono eseguire l'override dell'mplementazione predefinita usando operazioni di I/O asincrone.
Questo metodo accetta un token di annullamento che può essere usato per richiedere l'annullamento anticipato dell'operazione. Le implementazioni possono ignorare questa richiesta.
Altri metodi e proprietà dell'oggetto DbDataReader non devono essere richiamati mentre l'attività restituita non è ancora stata completata.
Questo metodo archivia nell'attività che restituisce tutte le eccezioni non di utilizzo che la controparte sincrona del metodo può generare. Se un'eccezione viene archiviata nell'attività restituita, tale eccezione verrà generata quando l'attività è attesa. Le eccezioni di utilizzo, ad esempio ArgumentException, vengono comunque generate in modo sincrono. Per le eccezioni archiviate, vedere le eccezioni generate da IsDBNull(DbDataReader, String).