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