IDataReader Interfaccia
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.
Consente di leggere uno o più flussi forward-only di set di risultati ottenuti eseguendo un comando in corrispondenza di un'origine dati e viene implementata dai provider di dati .NET che accedono a database relazionali.
public interface class IDataReader : IDisposable, System::Data::IDataRecord
public interface IDataReader : IDisposable, System.Data.IDataRecord
type IDataReader = interface
interface IDataRecord
interface IDisposable
type IDataReader = interface
interface IDisposable
interface IDataRecord
Public Interface IDataReader
Implements IDataRecord, IDisposable
- Derivato
- Implementazioni
Esempio
Nell'esempio seguente vengono create istanze delle classi derivate, , SqlConnectionSqlCommande SqlDataReader. L'esempio legge i dati, scrivendoli nella console. Infine, l'esempio chiude , SqlDataReaderquindi .SqlConnection
private static void ReadOrderData(string connectionString)
{
string queryString =
"SELECT OrderID, CustomerID FROM dbo.Orders;";
using (SqlConnection connection =
new SqlConnection(connectionString))
{
SqlCommand command =
new SqlCommand(queryString, connection);
connection.Open();
SqlDataReader reader = command.ExecuteReader();
// Call Read before accessing data.
while (reader.Read())
{
ReadSingleRow((IDataRecord)reader);
}
// Call Close when done reading.
reader.Close();
}
}
private static void ReadSingleRow(IDataRecord dataRecord)
{
Console.WriteLine(String.Format("{0}, {1}", dataRecord[0], dataRecord[1]));
}
Private Sub ReadOrderData(ByVal connectionString As String)
Dim queryString As String = _
"SELECT OrderID, CustomerID FROM dbo.Orders;"
Using connection As New SqlConnection(connectionString)
Dim command As New SqlCommand(queryString, connection)
connection.Open()
Dim reader As SqlDataReader = command.ExecuteReader()
' Call Read before accessing data.
While reader.Read()
ReadSingleRow(CType(reader, IDataRecord))
End While
' Call Close when done reading.
reader.Close()
End Using
End Sub
Private Sub ReadSingleRow(ByVal record As IDataRecord)
Console.WriteLine(String.Format("{0}, {1}", record(0), record(1)))
End Sub
Commenti
Le IDataReader interfacce e IDataRecord consentono a una classe che eredita di implementare una DataReader
classe , che consente di leggere uno o più flussi forward-only dei set di risultati. Per altre informazioni sulle DataReader
classi, vedere Recupero di dati tramite un DataReader.
Un'applicazione non crea direttamente un'istanza dell'interfaccia IDataReader , ma crea un'istanza di una classe che eredita IDataReader.
Le classi che ereditano IDataReader devono implementare i membri ereditati e in genere definiscono membri aggiuntivi per aggiungere funzionalità specifiche del provider.
Le modifiche apportate a un set di risultati da un altro processo o thread durante la lettura dei dati possono essere visibili all'utente di una classe che implementa un oggetto IDataReader
. Tuttavia, il comportamento preciso è dipendente dal provider e dal temporizzazione.
Note per gli implementatori
Per promuovere la coerenza tra i provider di dati .NET Framework, denominare la classe che eredita nel formato Prv
Comando dove Prv
è il prefisso uniforme assegnato a tutte le classi in uno spazio dei nomi del provider di dati .NET Framework specifico. Ad esempio, Sql
è il prefisso della SqlDataAdapter classe nello spazio dei System.Data.SqlClient
nomi .
Gli utenti non creano direttamente un'istanza di una DataReader
classe. Ottengono invece l'istanza DataReader
tramite il ExecuteReader
metodo dell'oggetto Command
. Pertanto, è necessario contrassegnare DataReader
i costruttori come interni.
Proprietà
Depth |
Ottiene un valore che indica il livello di annidamento della riga corrente. |
FieldCount |
Ottiene il numero di colonne nella riga corrente. (Ereditato da IDataRecord) |
IsClosed |
Ottiene un valore che indica se il lettore dati è chiuso. |
Item[Int32] |
Ottiene la colonna che si trova in corrispondenza dell'indice specificato. (Ereditato da IDataRecord) |
Item[String] |
Ottiene la colonna con il nome specificato. (Ereditato da IDataRecord) |
RecordsAffected |
Ottiene il numero di righe modificate, inserite o eliminate dall'esecuzione dell'istruzione SQL. |
Metodi
Close() |
Chiude l'oggetto IDataReader. |
Dispose() |
Esegue attività definite dall'applicazione, come rilasciare o reimpostare risorse non gestite. (Ereditato da IDisposable) |
GetBoolean(Int32) |
Ottiene il valore della colonna specificata come valore Boolean. (Ereditato da IDataRecord) |
GetByte(Int32) |
Ottiene il valore dell'intero senza segno a 8 bit della colonna specificata. (Ereditato da IDataRecord) |
GetBytes(Int32, Int64, Byte[], Int32, Int32) |
Legge un flusso di byte dall'offset di colonna specificato nel buffer come matrice, a partire dall'offset del buffer specificato. (Ereditato da IDataRecord) |
GetChar(Int32) |
Ottiene il valore del carattere della colonna specificata. (Ereditato da IDataRecord) |
GetChars(Int32, Int64, Char[], Int32, Int32) |
Legge un flusso di caratteri dall'offset di colonna specificato nel buffer come matrice, a partire dall'offset del buffer specificato. (Ereditato da IDataRecord) |
GetData(Int32) |
Restituisce IDataReader per l'ordinale di colonna specificato. (Ereditato da IDataRecord) |
GetDataTypeName(Int32) |
Ottiene le informazioni sul tipo di dati per il campo specificato. (Ereditato da IDataRecord) |
GetDateTime(Int32) |
Ottiene il valore dei dati di data e ora del campo specificato. (Ereditato da IDataRecord) |
GetDecimal(Int32) |
Ottiene il valore numerico con posizione fissa del campo specificato. (Ereditato da IDataRecord) |
GetDouble(Int32) |
Ottiene il numero a virgola mobile con precisione doppia del campo specificato. (Ereditato da IDataRecord) |
GetFieldType(Int32) |
Ottiene le informazioni relative a Type corrispondenti al tipo di Object che verrebbe restituito da GetValue(Int32). (Ereditato da IDataRecord) |
GetFloat(Int32) |
Ottiene il numero a virgola mobile con precisione singola del campo specificato. (Ereditato da IDataRecord) |
GetGuid(Int32) |
Restituisce il valore GUID del campo specificato. (Ereditato da IDataRecord) |
GetInt16(Int32) |
Ottiene il valore dell'intero con segno a 16 bit del campo specificato. (Ereditato da IDataRecord) |
GetInt32(Int32) |
Ottiene il valore dell'intero con segno a 32 bit del campo specificato. (Ereditato da IDataRecord) |
GetInt64(Int32) |
Ottiene il valore dell'intero con segno a 64 bit del campo specificato. (Ereditato da IDataRecord) |
GetName(Int32) |
Ottiene il nome del campo da trovare. (Ereditato da IDataRecord) |
GetOrdinal(String) |
Restituisce l'indice del campo denominato. (Ereditato da IDataRecord) |
GetSchemaTable() |
Restituisce un oggetto DataTable che descrive i metadati della colonna di IDataReader. Restituisce |
GetString(Int32) |
Ottiene il valore stringa del campo specificato. (Ereditato da IDataRecord) |
GetValue(Int32) |
Restituisce il valore del campo specificato. (Ereditato da IDataRecord) |
GetValues(Object[]) |
Popola una matrice di oggetti con i valori della colonna del record corrente. (Ereditato da IDataRecord) |
IsDBNull(Int32) |
Indica se il campo specificato è impostato su Null. (Ereditato da IDataRecord) |
NextResult() |
Sposta il lettore dati al risultato successivo durante la lettura dei risultati di un batch di istruzioni SQL. |
Read() |
Sposta l'oggetto IDataReader al record successivo. |