Sebbene non ci sia soluzione di uno stadio per la conversione di un DataReader direttamente in un DataSet all'interno del Dot Net Framework di Microsoft , è possibile sottoporsi a un processo a più fasi di trasformazione di un programma utilizzando l'accesso DataReader in uno utilizzando un DataSet . Sia DataReader e DataSet sono derivati utilizzando un comando che incapsula una query di database . Un DataReader restituisce i risultati della query una riga alla volta , pur rimanendo collegato al database . Al contrario, un DataSet è autonomo e contiene tutti i dati restituiti dalla query . Per prestazioni ottimali, utilizzare il DataReader , per la versatilità , il set di dati è generalmente una scelta migliore . Cose che ti serviranno
Microsoft Visual Studio o Visual Basic Express ( 2005 o versioni successive ) per codice Visual Basic o C # che utilizza un oggetto DataReader
Qualche conoscenza di Dot Net Framework dati i metodi di accesso
< br > Mostra Altre istruzioni
1
Individuare il codice che crea il DataReader . In Visual Basic , il codice simile al seguente :
01 : Dim conn Come SqlConnection = Nothing
02 : Dim cmd Come SqlCommand
03 : Dim rdr As SqlDataReader = niente
04 : Dim campo1 , campo2 As String
05 :
06 : Prova
07 : conn = CreateConnection ( ) per < p > 08 : cmd = New SqlCommand ( " procName " , conn ) per
09 : cmd.CommandType = CommandType.StoredProcedure
10:
11 : rdr = cmd.ExecuteReader
12 : Mentre rdr.Read
13: campo1 = rdr.GetString ( 0 ) per
14 : campo2 = rdr.GetString ( 1 ) per
15 : ...
16 : End While
17 :
18 : Catch ex As Exception
19 : Lancia
20 :
21 : Finalmente
22 : rdr.Close ( ) per
23 : conn.Close ( ) per
24 : End Try
si noti che in questo esempio , viene utilizzata la versione di SQL del DataReader . Lo stesso codice funziona per OLEDB e altre classi DataReader
2
sostituire la dichiarazione di DataReader in linea 3 con una nuova dichiarazione per un DataSet denominato DS : .
01 : Dim conn come SqlConnection = Nothing
02 : Dim cmd come SqlCommand
03 > Dim ds As New DataSet
04 : Dim campo1 , campo2 As String
05 :
3
Sostituire i riferimenti al DataReader in righe da 11 a 16 con il nuovo codice che crea e configura un DataAdapter :
06 : Prova
< p > 07 : conn = CreateConnection ( ) per
08 : cmd = New SqlCommand ( " procName " , conn ) per
09 : cmd.CommandType = CommandType.StoredProcedure
10:
11 > Dim dap As New SqlDataAdapter
12 > dap.SelectCommand = cmd
SqlDataAdapter è un oggetto di supporto utilizzato per spostare i dati avanti e indietro da un DataSet . Dopo che l'oggetto viene creato , la proprietà SelectCommand è impostata allo stesso oggetto comando utilizzato per creare il DataReader
4
Utilizzare il metodo Fill di DataAdapter per riempire il DataSet : .
13 > dap.Fill ( ds ) economici 5
chiudere la connessione prima di elaborare i dati , dal momento che il DataSet contiene ora tutti i dati restituiti dalla classe DataAdapter , chiudendo la connessione è di buona prassi . Ricorda anche di rimuovere la riga che chiude il DataReader ( linea 22 ) :
18 : Catch ex As Exception
19 : Lancia
20 :
21 : Finalmente
23 : conn.Close ( ) per
24 : End Try
6
elaborare i dati , il recupero dalla collezione fila di DataSet come segue : .
25 > per ogni riga come DataRow In ds.Tables ( 0 ) Righe
26 > campo1 = riga ( " campo1 " ) per
27 > campo2 = riga ( " Campo2 " ) per
28 > ...
29 > ...
30 > Avanti