Använda två datamängder i Visual Basic är ett av de bästa sätten att hålla data som synkroniseras när en användare gör ändringar av de ursprungliga uppgifterna . En " DataSet " är en cache i minnet för data som hämtas från en datakälla, t.ex. ett bord . Programmerare laddar vanligen från en databas tabell till en " DataSet " och tillåter användaren att göra ändringar i de ursprungliga uppgifterna . En andra " DataSet " används för att fånga de förändringar och fusionerades tillbaka till det ursprungliga " DataSet " med " DataSet.Merge "-metoden. Saker du behöver
Microsoft Visual Studio
Visa fler instruktioner
1
Launch Microsoft Visual Studio , klicka på " Nytt projekt " från den vänstra rutan på din datorskärm , och expandera " Visual Basic " under " Installerade mallar . " Klicka på " Windows " och dubbelklicka på " Console Application " från mitten av dialogrutan för att skapa en ny konsol projekt .
2
Kopiera och klistra in följande kod för att skapa den första " DataSet , " ett bord , två kolumner , och tre rader :
Dim dataSet Som New dataSet ( " dataset " ) katalog
Dim bord som ny DataTable ( " objekt " ) katalog
Dim idColumn som New DataColumn ( " id " , Type.GetType ( " System.Int32 " ) ) katalog
idColumn.AutoIncrement = Sant
Dim itemColumn som New DataColumn ( " Post " , Type.GetType ( " System.Int32 " ) ) katalog
Dim rad som DataRow
3
Lägg till följande kodrad för att skapa den andra " DataSet : "
Dim changeDataSet som DataSet
4
Lägg coulumns till bordet och lägg i tabellen till
5
Lägg tio rader med data i tabellen och acceptera ändringarna :
Dim I As Integer
För i = 0 till 9
v = table.NewRow ( ) katalog
raden ( " Post " ) = i
table.Rows.Add ( v ) katalog
Nästa I
dataSet.AcceptChanges ( )
6
Print " dataSet " värden till konsolen fönstret :
PrintValues ( datamängd " ursprungliga värden " )
7
Ändra tabellen genom att lägga till nya värden till de två första raderna , lägger till en ny rad och lägga till ett fel på en av raderna :
table.Rows ( 0 ) ( " Post " ) = 50
table.Rows ( 1 ) ( " Post " ) = 111
v = table.NewRow ( ) katalog
raden ( " Post " ) = 74
table.Rows . Lägg ( v ) katalog
table.Rows ( 1 ) . RowError = " över 100 "
PrintValues ( dataSet , " Modified och nya värden " )
8
Kontrollera om tabellen har förändringar och om det sedan sammanfoga ändringarna tillbaka till den första " DataSet " och skriva ut resultaten :
p Om dataSet.HasChanges ( DataRowState.Modified Eller DataRowState.Added ) _
Och dataSet.HasErrors Sen
changeDataSet = dataSet.GetChanges ( DataRowState.Modified _
Eller DataRowState.Added ) katalog
PrintValues ( changeDataSet , " delmängd värden " )
Dim changeTable Som DataTable
For Each changeTable I changeDataSet.Tables
p Om changeTable.HasErrors Sedan
Dim changeRow Som DataRow
For Each changeRow I changeTable.Rows
p Om CInt ( changeRow ( " Post " , _
DataRowVersion.Current ) ) > 100 så
changeRow.RejectChanges ( ) katalog
changeRow.ClearErrors ( ) katalog
End If
Nästa changeRow
End If
Nästa changeTable
PrintValues ( changeDataSet , " Förenas delmängd värden " ) katalog
dataSet.Merge ( changeDataSet ) katalog
PrintValues ( datamängd " Sammanfogade Values " ) katalog
Console.ReadLine ( ) katalog
End If
End sub
9
Lägg till följande sub procedur för att skriva ut " dataSet " värden till Console-fönstret :
Private Sub PrintValues ( ByVal dataSet som dataSet , ByVal label As String ) katalog
Console.WriteLine ( ControlChars.Cr & etikett ) katalog
Dim bord Som DataTable
om varje bord i dataSet.Tables
Console.WriteLine ( " TableName : " & table.TableName ) katalog
Dim rad som DataRow
för varje rad i table.Rows
Dim kolumn Som DataColumn
för varje kolumn i table.Columns
Console.Write ( ControlChars.Tab & " " _
& rad ( kolumn ) . toString ( ) ) katalog
Nästa kolumn
Console.WriteLine ( ) katalog
Nästa rad
Nästa bord
End Sub
10
Tryck " F5 " att köra programmet .