Selv om der ikke et-trins løsning til konvertering af en DataReader direkte ind i en DataSet i Microsoft Dot Net Framework , kan du gennemgå en multi-trins processen med at omdanne et program ved hjælp DataReader adgang til én ved hjælp af en DataSet . Både DataReader og DataSet er udledt ved hjælp af en kommando , der indkapsler en database forespørgsel. En DataReader returnerer forespørgslen resultater én række ad gangen, mens de resterende forbundet til databasen. I modsætning hertil er et datasæt selvstændig og besidder alle de data, der returneres fra forespørgslen . For ydeevne skal DataReader , for alsidighed, er datasættet generelt en bedre løsning. Ting du har brug
Microsoft Visual Studio eller Visual Basic Express ( 2005 eller senere )
Visual Basic eller C # kode, der bruger en DataReader objekt
vist kendskab til Dot Net Framework dataadgang metoder
< br > Vis mere Instruktioner
1
Find den kode, der skaber DataReader . I Visual Basic , ser koden noget som dette : Hej
01: Dim conn Som SqlConnection = Nothing
02: Dim cmd Som SqlCommand
03: Dim RDR Som SqlDataReader = intet
04: Dim felt1 , felt2 As String
05 : Hej
06: Prøv
07: conn = CreateConnection ()
< p > 08: cmd = Ny SqlCommand ( " procname " , conn )
09: cmd.CommandType = CommandType.StoredProcedure
10 : Hej
11: RDR = cmd.ExecuteReader
12: Mens rdr.Read
13: felt1 = rdr.GetString (0)
14: field2 = rdr.GetString (1)
15: ...
16: End Mens
17 : Hej
18: Fang ex Som Exception
19: Kast
20 : Hej
21: Endelig
22: rdr.Close ()
23: conn.Close ()
24: End Prøv
Bemærk at i dette eksempel er SQL version af DataReader anvendes. Den samme kode virker for OLEDB og andre DataReader klasser
2
Udskift erklæringen fra DataReader på linje 3 med en ny erklæring for en DataSet hedder ds : .
01: Dim conn som SqlConnection = Nothing
02: Dim cmd som SqlCommand
03 > Dim ds som ny DataSet
04 : Dim felt1 , felt2 As String
05 :
3
Udskift henvisningerne til DataReader i linjerne 11 til 16 med ny kode , der skaber og etablerer et DataAdapter : Hej
06: Prøv
< p > 07: conn = CreateConnection ()
08: cmd = Ny SqlCommand ( " procname " , conn )
09: cmd.CommandType = CommandType.StoredProcedure
10:
11> Dim dap Som New SqlDataAdapter
12> dap.SelectCommand = cmd
SqlDataAdapter er en hjælper objekt bruges til at flytte data frem og tilbage fra en DataSet . Når objektet bliver oprettet, SelectCommand ejendom sat til den samme kommando som bruges til at oprette DataReader
4
Brug DataAdapter fyld metode til at fylde DataSet : .
13> dap.Fill (DS)
5
Luk forbindelsen før behandlingen af oplysningerne , da DataSet indeholder nu alle de data, der returneres af DataAdapter , lukning af forbindelsen er god praksis. Husk også at fjerne den linje , der lukker DataReader ( line 22) : Hej
18: Fang ex Som Exception
19: Kast
20 : Hej
21: Endelig
23: conn.Close ()
24: End Prøv
6
behandle data , hentning det fra Row samling af DataSet som følger: .
25 > for hver række som DataRow I ds.Tables (0) Rækker
26 > felt1 = række ( " felt1 " )
27 > field2 = række ( " Felt2 " )
28 > ...
29 > ...
30 > Næste
< br >