Bruke to datasett i Visual Basic er en av de beste måtene å holde data synkroniseres når en bruker gjør endringer i de opprinnelige dataene . A " datasett " er en in-memory cache av data som er hentet fra en datakilde for eksempel en tabell . Programmerere ofte laste inn data fra en database tabell til en " datasett " og tillater brukeren å foreta endringer i de opprinnelige dataene . En annen " datasett " er brukt for å fange opp endringer og fusjonerte tilbake til den opprinnelige " datasett " bruke " DataSet.Merge " metoden. Du trenger
Microsoft Visual Studio
Vis flere instruksjoner
en
Launch Microsoft Visual Studio , klikk " Nytt prosjekt " fra den venstre ruten på skjermen , og utvide " Visual Basic " under " Installerte maler . " Klikk på " Windows" og dobbeltklikk på "Console Application " fra sentrum av dialog vinduet for å opprette en ny konsoll prosjekt.
2
Kopier og lim inn følgende kode for å lage den første " datasett , " et bord , to kolonner , og tre rekker:
Dim datasett som ny datasett ( " datasett ")
Dim tabell som ny DataTable ( " Elementer " )
Dim idColumn som New DataColumn ( " id" , Type.GetType ( " System.Int32 "))
idColumn.AutoIncrement = sant
Dim itemColumn som ny DataColumn ( "Element " , Type.GetType ( " System.Int32 "))
Dim rad Som DataRow
3
Legg til følgende linje med kode for å lage det andre " datasett : "
Dim changeDataSet Som datasett
4
Legg coulumns til bordet og legge tabellen til
5
Legg ti rader med data til bordet og godta endringene : en
Dim i As Integer
For i = 0 til 9
rad = table.NewRow ( )
rad ( "Element ") = i
table.Rows.Add (rad )
Neste jeg
dataSet.AcceptChanges ()
6
Print " datasett" verdier til konsollen vinduet :
PrintValues ( datasettet, "Opprinnelige verdier ")
7
Endre tabellen ved å legge til nye verdier i de to første radene , og legger til en ny rad , og legger en feil i en av radene :
table.Rows ( 0 ) ( "Element ") = 50
table.Rows ( 1 ) ( " Item" ) = 111
p = table.NewRow ( )
rad ( " Item" ) = 74
table.Rows . Legg til ( rad)
table.Rows ( 1 ) . RowError = "over 100 "
PrintValues (datasett , " Modified og New Values" )
8
Sjekk om tabellen har endringer , og hvis det ikke flette deretter endringene tilbake til den første " datasett " og skrive ut resultatet : en p Hvis dataSet.HasChanges ( DataRowState.Modified Eller DataRowState.Added ) _
< p > Og dataSet.HasErrors Deretter
changeDataSet = dataSet.GetChanges ( DataRowState.Modified _
Eller DataRowState.Added )
PrintValues ( changeDataSet , " undergruppe verdier ")
Dim changeTable Som DataTable
Hver changeTable I changeDataSet.Tables
p Hvis changeTable.HasErrors Deretter
Dim changeRow Som DataRow
for hver changeRow I changeTable.Rows
p Hvis Cint ( changeRow ( "Element ", _
DataRowVersion.Current ) ) > 100 så
changeRow.RejectChanges ( )
changeRow.ClearErrors ()
End If
Neste changeRow
End If
Neste changeTable
PrintValues ( changeDataSet , " Forsonet undergruppe verdier ")
dataSet.Merge ( changeDataSet )
PrintValues ( datasettet, " Sammenslåtte Values" )
Console.ReadLine ( )
End If
End sub
9
Legg til følgende sub fremgangsmåten for å skrive " datasett" verdier til konsollen vinduet:
Private sub PrintValues ( ByVal datasettet Som datasett , ByVal label As String )
Console.WriteLine ( ControlChars.Cr & etiketten )
Dim tabell Som DataTable
for hver tabell I dataSet.Tables
< p > Console.WriteLine ( " tablename :" & table.TableName )
Dim rad Som DataRow
for hver rad i table.Rows
Dim kolonne Som DataColumn
for hver kolonne i table.Columns
Console.Write ( ControlChars.Tab & " " _
& rad (kolonne ) . toString ( ) )
Neste kolonne
Console.WriteLine ( )
Neste rad
Neste tabell
End Sub
10
Trykk " F5" å kjøre programmet .