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 () 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
|