Nieuwe

Een inleiding tot DataSet in VB.NET

Een inleiding tot DataSet in VB.NET

Veel van de datatechnologie van Microsoft, ADO.NET, wordt geleverd door het DataSet-object. Dit object leest de database en maakt een kopie in het geheugen van dat deel van de database dat uw programma nodig heeft. Een DataSet-object komt meestal overeen met een echte databasetabel of -weergave, maar DataSet is een losgekoppelde weergave van de database. Nadat ADO.NET een DataSet heeft gemaakt, is er geen behoefte meer aan een actieve verbinding met de database, wat helpt bij de schaalbaarheid omdat het programma tijdens het lezen of schrijven slechts gedurende een paar microseconden verbinding hoeft te maken met een databaseserver. DataSet is niet alleen betrouwbaar en gebruiksvriendelijk, maar ondersteunt ook een hiërarchische weergave van de gegevens als XML en een relationele weergave die u kunt beheren nadat uw programma is losgekoppeld.

U kunt uw eigen unieke weergaven van een database maken met behulp van DataSet. Relateer DataTable-objecten aan elkaar met DataRelation-objecten. U kunt zelfs gegevensintegriteit afdwingen met behulp van de objecten UniqueConstraint en ForeignKeyConstraint. In het onderstaande eenvoudige voorbeeld wordt slechts één tabel gebruikt, maar u kunt meerdere tabellen uit verschillende bronnen gebruiken als u ze nodig hebt.

Codering van een VB.NET-gegevensset

Deze code maakt een DataSet met één tabel, één kolom en twee rijen:

Dim ds As New DataSet Dim dt As DataTable Dim dr As DataRow Dim cl As DataColumn Dim i As Integer dt = New DataTable () cl = New DataColumn ("theColumn", Type.GetType ("System.Int32")) dt.Columns .Add (cl) dr = dt.NewRow () dr ("theColumn") = 1 dt.Rows.Add (dr) dr = dt.NewRow () dr ("theColumn") = 2 dt.Rows.Add (dr ) ds.Tables.Add (dt) Voor i = 0 Naar ds.Tables (0) .Rows.Count - 1 Console.WriteLine (ds.Tables (0) .Rows (i) .Item (0) .ToString) Volgende ik

De meest gebruikelijke manier om een ​​DataSet te maken, is door de vulmethode van het DataAdapter-object te gebruiken. Hier is een voorbeeld van een getest programma:

Dim connectionString As String = "Gegevensbron = MUKUNTUWEAP;" & "Initiële catalogus = Booze;" & "Integrated Security = True" Dim cn As New SqlConnection (connectionString) Dim commandWrapper As SqlCommand = New SqlCommand ("SELECT * FROM RECIPES", cn) Dim dataAdapter As SqlDataAdapter = New SqlDataAdapter Dim myDataSet As DataSet = New DataSet = DataCommand = DataCommand commandWrapper dataAdapter.Fill (myDataSet, "Recepten")

De DataSet kan vervolgens worden behandeld als een database in uw programmacode. De syntaxis vereist dit niet, maar u geeft normaal de naam van de gegevenstabel op om de gegevens in te laden. Hier is een voorbeeld dat laat zien hoe een veld wordt weergegeven.

Dim r Als DataRow voor elke r In myDataSet.Tables ("Recepten"). Rijen Console.WriteLine (r ("Receptnaam"). ToString ()) Volgende

Hoewel de DataSet gemakkelijk te gebruiken is, is het misschien beter om, als ruwe prestaties het doel zijn, meer code te schrijven en de DataReader te gebruiken.

Als u de database moet bijwerken nadat u de DataSet hebt gewijzigd, kunt u de updatemethode van het DataAdapter-object gebruiken, maar u moet ervoor zorgen dat de eigenschappen DataAdapter correct zijn ingesteld met SqlCommand-objecten. SqlCommandBuilder wordt meestal gebruikt om dit te doen.

Dim objCommandBuilder As New SqlCommandBuilder (dataAdapter) dataAdapter.Update (myDataSet, "Recepten")

DataAdapter zoekt uit wat er is gewijzigd en voert vervolgens een INSERT-, UPDATE- of DELETE-opdracht uit, maar zoals bij alle databasebewerkingen, kunnen updates van de database problemen opleveren wanneer de database door andere gebruikers wordt bijgewerkt, dus u moet vaak code opnemen anticiperen op en problemen oplossen bij het wijzigen van de database.

Soms doet alleen een DataSet wat u nodig hebt. Als u een verzameling nodig hebt en u de gegevens serialiseert, is een DataSet de tool om te gebruiken. U kunt een DataSet naar XML snel serialiseren door de WriteXML-methode aan te roepen.

DataSet is het meest waarschijnlijke object dat u zult gebruiken voor programma's die verwijzen naar een database. Het is het kernobject dat wordt gebruikt door ADO.NET en is ontworpen om te worden gebruikt in een niet-verbonden modus.