Bien qu'il n'y ait pas de solution en une seule étape pour convertir un DataReader directement dans un DataSet dans le Net Framework Microsoft Dot, vous pouvez passer par un processus multi-étapes de la transformation d'un programme utilisant l'accès DataReader en un seul en utilisant un DataSet . Les deux DataReader et DataSet sont calculées en utilisant une commande qui encapsule une requête de base de données . Un DataReader renvoie les résultats de la requête d' une ligne à la fois tout en restant connecté à la base . En revanche, un DataSet est autonome et contient toutes les données renvoyées par la requête. Pour les performances, utilisez le DataReader , de polyvalence, de l'ensemble de données est généralement une meilleure option. Les choses dont vous aurez besoin
Microsoft Visual Studio ou Visual Basic Express ( 2005 ou plus tard )
Visual Basic ou C # code qui utilise un objet DataReader
certaine connaissance de Dot Net Framework données méthodes d'accès
< br > Afficher plus Instructions
1
trouver le code qui crée le DataReader. Dans Visual Basic, le code ressemble à ceci :
01: conn As SqlConnection = Nothing
02 : cmd As SqlCommand
03: rdr As SqlDataReader = rien
04: Dim champ1 , champ2 As String
05:
06: essayer et
07: conn = CreateConnection ()
< p > 08 : cmd = new SqlCommand ( " procName " , conn)
09: cmd.CommandType = CommandType.StoredProcedure
10:
11: rdr = cmd.ExecuteReader Photos
12: Bien rdr.Read
13: champ1 = rdr.GetString (0)
14: field2 = rdr.GetString (1) Photos
15: ...
16: End While
17:
18: Catch ex As Exception
19: Jeter
20:
21: Enfin
22: rdr.Close ()
23: conn.Close ()
24: End Try
Notez que dans cet exemple, la version SQL du DataReader est utilisé. Le même code fonctionne pour OLEDB et d'autres classes DataReader
2
remplacera la déclaration du DataReader à la ligne 3 avec une nouvelle déclaration pour un DataSet appelé ds: .
01: Dim conn comme SqlConnection = Nothing
02 : cmd As SqlCommand
03 > ds As New DataSet
04 : DIM champ1 , champ2 As String
05 :
3
Remplacer les références à la DataReader dans les lignes 11 à 16 avec un nouveau code qui crée et met en place un DataAdapter :
06: essayer et
07 : conn = CreateConnection ()
08: cmd = new SqlCommand ( " procName " , conn)
09: cmd.CommandType = CommandType.StoredProcedure
10: Photos
11> dap As New SqlDataAdapter
12> dap.SelectCommand = cmd
Les SqlDataAdapter est un objet d'assistance utilisée pour déplacer des données dans les deux sens à partir d'un DataSet. Après que l'objet est créé , la propriété SelectCommand est réglé sur le même objet de commande utilisée pour créer le DataReader
4
Utilisez la méthode Fill du DataAdapter pour remplir le DataSet : .
13> dap.Fill (ds)
5
fermer la connexion avant de traiter les données ; depuis le DataSet contient maintenant toutes les données renvoyées par le DataAdapter , la fermeture de la connexion est bonne pratique . Aussi n'oubliez pas de supprimer la ligne qui ferme le DataReader (ligne 22 ) :
18: Catch ex As Exception
19: Jeter
20:
21: Enfin
23: conn.Close ()
24: End Try
6 processus de
données, l'extraction à partir de la collection de ligne du DataSet en tant que suit: .
25 > Pour chaque ligne comme DataRow En ds.Tables (0) Rows
26 > champ1 = ligne ( " champ1 " )
27> field2 = rangée ( " Field2 " )
28> ...
29> ...
30> Suivant