DbDataReader.GetFieldValueAsync 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 il valore della colonna specificata come tipo richiesto.
Overload
| Nome | Descrizione |
|---|---|
| GetFieldValueAsync<T>(Int32) |
Ottiene in modo asincrono il valore della colonna specificata come tipo richiesto. |
| GetFieldValueAsync<T>(Int32, CancellationToken) |
Ottiene in modo asincrono il valore della colonna specificata come tipo richiesto. |
GetFieldValueAsync<T>(Int32)
Ottiene in modo asincrono il valore della colonna specificata come tipo richiesto.
public:
generic <typename T>
System::Threading::Tasks::Task<T> ^ GetFieldValueAsync(int ordinal);
public System.Threading.Tasks.Task<T> GetFieldValueAsync<T>(int ordinal);
member this.GetFieldValueAsync : int -> System.Threading.Tasks.Task<'T>
Public Function GetFieldValueAsync(Of T) (ordinal As Integer) As Task(Of T)
Parametri di tipo
- T
Tipo del valore da restituire.
Parametri
- ordinal
- Int32
Ordinale di colonna in base zero.
Valori restituiti
Attività il cui Result valore contiene il valore della colonna specificata.
Eccezioni
La connessione è stata eliminata o chiusa durante il recupero dei dati.
oppure
Il lettore di dati è stato 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
Si è tentato 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.
L'indice di colonna non è compreso nell'intervallo.
Il valore restituito dal database non corrisponde o non può essere sottoposto a cast su T.
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.
I provider di dati che supportano la programmazione asincrona devono eseguire l'override dell'implementazione predefinita usando operazioni di I/O asincrone.
Altri metodi e proprietà dell'oggetto DbDataReader non devono essere richiamati mentre l'attività restituita non è ancora stata completata.
Si applica a
GetFieldValueAsync<T>(Int32, CancellationToken)
Ottiene in modo asincrono il valore della colonna specificata come tipo richiesto.
public:
generic <typename T>
virtual System::Threading::Tasks::Task<T> ^ GetFieldValueAsync(int ordinal, System::Threading::CancellationToken cancellationToken);
public virtual System.Threading.Tasks.Task<T> GetFieldValueAsync<T>(int ordinal, System.Threading.CancellationToken cancellationToken);
abstract member GetFieldValueAsync : int * System.Threading.CancellationToken -> System.Threading.Tasks.Task<'T>
override this.GetFieldValueAsync : int * System.Threading.CancellationToken -> System.Threading.Tasks.Task<'T>
Public Overridable Function GetFieldValueAsync(Of T) (ordinal As Integer, cancellationToken As CancellationToken) As Task(Of T)
Parametri di tipo
- T
Tipo del valore da restituire.
Parametri
- ordinal
- Int32
Ordinale di colonna in base zero.
- cancellationToken
- CancellationToken
Token per annullare l'operazione asincrona.
Valori restituiti
Attività il cui Result valore contiene il valore della colonna specificata.
Eccezioni
La connessione è stata eliminata o chiusa durante il recupero dei dati.
oppure
Il lettore di dati è stato 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
Si è tentato 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.
L'indice di colonna non è compreso nell'intervallo.
Il valore restituito dal database non corrisponde o non può essere sottoposto a cast su T.
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'implementazione 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.