Zwar gibt es keine Ein-Schritt- Lösung für die Konvertierung eines DataReader direkt in ein DataSet im Microsoft Dot Net Framework können Sie durchlaufen einen mehrstufigen Prozess der Umwandlung ein Programm mit DataReader Zugang zu einem mit einem DataSet . Sowohl DataReader und DataSet abgeleitet mit einem Befehl, eine Datenbank-Abfrage kapselt. Ein DataReader gibt die Abfrageergebnisse eine Zeile zu einem Zeitpunkt während restlichen mit der Datenbank verbunden . Im Gegensatz dazu ist ein DataSet geschlossenen und hält alle Daten aus der Abfrage zurückgegeben. Für Leistung , verwenden Sie den DataReader , denn Vielseitigkeit ist der Datensatz in der Regel eine bessere Option. Was Sie brauchen
Microsoft Visual Studio oder Visual Basic Express ( 2005 oder später )
Visual Basic oder C #-Code, ein DataReader-Objekt
verwendet einige Kenntnisse der Dot Net Framework Datenzugriffsmethoden
< br > Mehr zeigen Instructions
1
Suchen Sie den Code, der die DataReader erstellt . In Visual Basic sieht der Code so etwas wie dieses :
01 : Dim conn Wie SqlConnection = Nothing
02 : Dim cmd Als SqlCommand
03 : Dim rdr Wie SqlDataReader = Nichts
04 : Dim Feld1, Feld2 As String
05:
06 : Versuchen
07: conn = CreateConnection ()
< p > 08 : cmd = New SqlCommand ( " procName " , conn)
09 : cmd.CommandType = CommandType.StoredProcedure
10:
11: rdr = cmd.ExecuteReader
12: Während rdr.Read
13: Feld1 = rdr.GetString (0)
14: field2 = rdr.GetString ( 1) german
15: ...
16: End While
17:
18 : Catch ex As Exception
19 : Werfen
20 :
21 : Endlich
22: rdr.Close ()
23: conn.Close ()
24: End Try
beachte, dass in diesem Beispiel die SQL -Version des DataReader verwendet wird. Der gleiche Code funktioniert für OLEDB und andere Klassen DataReader
2
Ersetzen Sie die Erklärung des DataReader in Zeile 3 mit einer neuen Erklärung für ein DataSet ds genannt : .
01 : Dim conn wie SqlConnection = Nothing
02 : Dim cmd als SqlCommand
03> Dim ds als neue DataSet
04 : Dim Feld1, Feld2 As String
05 :
3
Ersetzen Sie die Verweise auf den DataReader in den Zeilen 11 bis 16 mit neuen Code , erstellt und richtet einen DataAdapter :
06 : Versuchen
< p > 07: conn = CreateConnection ()
08: cmd = New SqlCommand ( " procName " , conn)
09 : cmd.CommandType = CommandType.StoredProcedure
10:
11 > Dim dap As New SqlDataAdapter
12 > cmd = dap.SelectCommand
Die SqlDataAdapter ist ein Helfer Objekt verwendet werden, um Daten hin und her zu bewegen aus einem DataSet . Nachdem das Objekt erstellt wird , wird die SelectCommand -Eigenschaft auf den gleichen Befehl verwendet, um das Objekt DataReader erstellen Set
4
verwenden Sie den DataAdapter die Fill-Methode zum Füllen des DataSet : .
13 > dap.Fill (ds)
5
Schließen Sie die Verbindung vor der Verarbeitung der Daten , da das DataSet enthält nun alle Daten von den DataAdapter zurückgegeben , das Schließen der Verbindung ist eine gute Übung . Vergessen Sie auch nicht die Zeile, die DataReader ( Zeile 22) schließt entfernen:
18 : Catch ex As Exception
19 : Werfen
20 :
21 : Endlich
23: conn.Close ()
24: End Try
6
Prozess die Daten , Abrufen aus der Reihe Sammlung des DataSet als folgt : .
25 > für jede Zeile als DataRow In ds.Tables (0 ) Zeilen
26> field1 = Zeile ( " Feld1 " )
27> = field2 Zeile ( " Feld2 " )
28> ...
29> ...
30> Weiter