Ved hjælp af to datasæt i Visual Basic er en af de bedste måder at holde data synkroniseret , når en bruger foretager ændringer i de oprindelige data. A " DataSet " er en in- memory cache af data hentet fra en datakilde såsom et bord . Programmører almindeligvis indlæse data fra en database tabel til en " DataSet ", og giver brugeren mulighed for at foretage ændringer i de oprindelige data. En anden " DataSet " bruges til at fange de ændringer og fusionerede tilbage til den oprindelige " datasættet " bruger " DataSet.Merge " metoden . Ting du skal
Microsoft Visual Studio
Vis Flere Instruktioner
1
Launch Microsoft Visual Studio , klik på " Nyt projekt " fra venstre rude på din computerskærm , og expand " Visual Basic " under " Installerede skabeloner ". Klik på " Windows" og dobbeltklik på "Console Application " fra midten af dialogvinduet for at oprette en ny konsol -projekt.
2
Kopier og indsæt følgende kode til at skabe den første " DataSet " et bord , to kolonner og tre rækker:
Dim datasættet New dataSet ( " datasæt " )
Dim tabel som New DataTable ( " Varer " )
Dim idColumn som New DataColumn ( "id " , Type.GetType ( " System.Int32 " ) )
idColumn.AutoIncrement = Sand
Dim itemColumn som ny DataColumn ( "Produkt" , Type.GetType ( " System.Int32 " ) )
Dim række som DataRow
3
Tilføj følgende linje kode til at oprette den anden " DataSet : "
Dim changeDataSet Da DataSet
4
Tilføj coulumns til tabel og føje tabellen til
5
Tilføj ti rækker af data til bordet og acceptere ændringerne : Hej
Dim i As Integer
For i = 0 til 9
p = table.NewRow ()
række ( "Produkt" ) = i
table.Rows.Add ( række)
Næste jeg
dataSet.AcceptChanges ()
6
Print " dataSet " værdier til Console vinduet :
PrintValues ( datasæt " oprindelige værdier " )
7
Rediger bordet ved at tilføje nye værdier til de første to rækker , tilføjer en ny række, og tilføje en fejl til en af rækkerne :
table.Rows (0) ( "Produkt" ) = 50
table.Rows (1) ( "Produkt" ) = 111
p = table.NewRow ()
række ( "Produkt" ) = 74
table.Rows . Tilføj ( række)
table.Rows (1). RowError = " over 100 "
PrintValues ( datasæt , " Modified og New værdier" )
8
Kontroller, om bordet har ændringer, og om det så ikke flette ændringer tilbage til den første " DataSet " og udskrive resultaterne : Hej p Hvis dataSet.HasChanges ( DataRowState.Modified Eller DataRowState.Added ) _
< p > Og dataSet.HasErrors Så
changeDataSet = dataSet.GetChanges ( DataRowState.Modified _
Eller DataRowState.Added )
PrintValues ( changeDataSet , " Undersæt values" ) < br >
Dim changeTable Som DataTable
For Each changeTable I changeDataSet.Tables
p Hvis changeTable.HasErrors Så
Dim changeRow Som DataRow
For Each changeRow I changeTable.Rows
p Hvis Cint ( changeRow ( "Produkt" , _
DataRowVersion.Current ) ) > 100, så
changeRow.RejectChanges ( )
changeRow.ClearErrors ()
End If
Næste changeRow
End If
Næste changeTable
PrintValues ( changeDataSet , " Afstemt delmængde values" )
dataSet.Merge ( changeDataSet )
PrintValues ( datasæt "sammensmeltede værdier" )
Console.ReadLine ()
End If
End sub
9
Tilføj følgende sub fremgangsmåde til at udskrive " dataSet " værdier til Console -vinduet:
Private Sub PrintValues ( ByVal datasættet dataSet , ByVal label As String )
Console.WriteLine ( ControlChars.Cr & etiket)
Dim tabel som DataTable
hvert bord i dataSet.Tables
< p > Console.WriteLine ( " TableName : " & table.TableName )
Dim række som DataRow
Hver række i table.Rows
Dim kolonne Som DataColumn
Hver kolonne I table.Columns
Console.Write ( ControlChars.Tab & " " _
& række ( kolonne) . ToString () )
Næste kolonne
Console.WriteLine ()
Næste række
næste tabel
End Sub
10
Tryk på " F5 " for at køre programmet .