Hoewel er geen een-stap oplossing voor het omzetten van een DataReader direct in een DataSet binnen de Microsoft Dot Net Framework , kunt u een multi - step proces van het transformeren van een programma met DataReader toegang te ondergaan in een met een DataSet . Zowel DataReader en DataSet worden afgeleid met behulp van een commando dat een database query inkapselt . Een DataReader geeft de resultaten van de query een rij in een tijd , terwijl de resterende aangesloten op de database. In tegenstelling, een DataSet is self - contained en houdt al het terug uit de query gegevens . Voor de prestaties , gebruikt u de DataReader , voor veelzijdigheid , de dataset is over het algemeen een betere optie . Wat je nodig hebt Microsoft Visual Studio of Visual Basic Express ( 2005 of later ) op Twitter Visual Basic of C # code die gebruikmaakt van een DataReader object Enige kennis van de Dot Net Framework data access methoden < br > Toon Meer Aanwijzingen 1 Zoek de code die de DataReader creëert . In Visual Basic , de code ziet er ongeveer als volgt : 01 : Dim conn als SqlConnection = Nothing 02 : Dim cmd Zoals SqlCommand 03 : Dim rdr als SqlDataReader = niets 04 : Dim veld1 , veld2 als Koord 05 : 06 : Try 07 : conn = CreateConnection ( ) op 08 : cmd = Nieuwe SqlCommand ( " procName " , conn ) op 09 : cmd.CommandType = CommandType.StoredProcedure 10 : 11 : rdr = cmd.ExecuteReader 12 : Terwijl rdr.Read 13 : veld1 = rdr.GetString ( 0 ) op 14 : veld2 = rdr.GetString ( 1 ) op 15 : ... 16 : End While 17 : 18 : Catch ex als Uitzondering 19 : Gooi 20 : 21 : Eindelijk 22 : rdr.Close ( ) op 23 : Conn.Close ( ) op 24 : End Try dat in dit voorbeeld de SQL versie van de DataReader gebruikt . Dezelfde code werkt voor OLEDB en andere DataReader klassen kopen van 2 Vervang de verklaring van de DataReader in lijn 3 met een nieuwe verklaring voor een DataSet genaamd ds : . 01 : Dim conn zoals SqlConnection = Nothing 02 : Dim cmd zoals SqlCommand 03 > Dim ds als nieuwe DataSet 04 : Dim veld1 , veld2 als Koord 05 : 3 Vervang de verwijzingen naar de DataReader in lijnen 11 tot 16 met de nieuwe code die creëert en stelt een DataAdapter : 06 : Try 07 : conn = CreateConnection ( ) op 08 : cmd = Nieuwe SqlCommand ( " procName " , conn ) op 09 : cmd.CommandType = CommandType.StoredProcedure 10 : 11 > Dim dap als Nieuwe SqlDataAdapter 12 > dap.SelectCommand = cmd De SqlDataAdapter is een helper object dat wordt gebruikt om gegevens heen en weer bewegen van een DataSet . Nadat het object wordt gemaakt , wordt de eigenschap SelectCommand ingesteld op dezelfde commando -object gebruikt om de DataReader creëren 4 Gebruik de DataAdapter 's Fill methode om de DataSet vullen : . 13 > dap.Fill ( ds ) 5 Sluit de verbinding vóór de verwerking van de gegevens , omdat de DataSet bevat nu alle geretourneerd door de DataAdapter gegevens , het sluiten van de verbinding is een goede gewoonte . Ook niet vergeten om de lijn die de DataReader ( lijn 22 ) sluit verwijderen : 18 : Catch ex als Uitzondering 19 : Gooi 20 : 21 : Eindelijk 23 : Conn.Close ( ) op 24 : End Try Proces 6 de data, terughalen van het van de Rij collectie van de DataSet als volgt : . 25 > Voor Elke rij als DataRow In ds.Tables ( 0 ) Rijen 26 > veld1 ( " veld1 " ) op Twitter 27 > veld2 = nld = rij ( " Veld2 " ) op Twitter 28 > ... 29 > ... 30 > Volgende < br > |