May 27
Utilizzando due set di dati in Visual Basic è uno dei modi migliori per mantenere i dati sincronizzati quando un utente apporta modifiche ai dati originali. A "DataSet" è una cache in memoria dei dati recuperati da un'origine dati, ad esempio un tavolo. I programmatori comunemente caricare i dati da una tabella di database a un "dataset" e permettono all'utente di apportare modifiche ai dati originali. Un secondo "DataSet" è utilizzato per acquisire le modifiche e uniti di nuovo per l'originale "DataSet" utilizzando il metodo "DataSet.Merge".
1 Avviare Microsoft Visual Studio, fare clic su "New Project" dal riquadro sinistro dello schermo del computer, ed espandere "Visual Basic" sotto "Modelli installati." Fai clic su "Windows" e fare doppio clic su "Applicazione Console" dal centro della finestra di dialogo per creare un nuovo progetto di console.
2 Copiare e incollare il seguente codice per creare il primo "DataSet", un tavolo, due colonne e tre righe:
Dim dataSet As New DataSet("dataSet")
Dim tavolo come nuovo DataTable ( "Oggetti")
Dim idColumn come nuovo DataColumn ( "id", Type.GetType ( "System.Int32"))
idColumn.AutoIncrement = True
Dim itemColumn come nuovo DataColumn ( "Item", Type.GetType ( "System.Int32"))
fila fioco come DataRow
3 Aggiungere la seguente riga di codice per creare il secondo "DataSet:"
Dim changeDataSet As DataSet
4 Aggiungere coulumns al tavolo e aggiungere la tabella al "DataSet:"
table.Columns.Add(idColumn)
table.Columns.Add (itemColumn)
dataSet.Tables.Add (tabella)
5 Aggiungere dieci righe di dati alla tabella e accettare le modifiche:
Dim i As Integer
Per i = 0 a 9
row = table.NewRow ()
riga ( "Item") = I
table.Rows.Add (riga)
Next i
dataSet.AcceptChanges ()
6 Stampa valori "dataset" nella finestra della console:
PrintValues(dataSet, "Original values")
7 Modificare la tabella aggiungendo nuovi valori per le prime due righe, aggiungendo una nuova riga, e l'aggiunta di un errore ad una delle righe:
table.Rows(0)("Item") = 50
table.Rows (1) ( "Item") = 111
row = table.NewRow ()
riga ( "Item") = 74
table.Rows.Add (riga)
table.Rows (1) .RowError = "oltre 100"
PrintValues (DataSet "Modified e nuovi valori")
8 Controllare se la tabella contiene modifiche e se lo fa poi unire i cambiamenti di nuovo al primo "DataSet" e stampare i risultati:
If dataSet.HasChanges(DataRowState.Modified Or DataRowState.Added) _
E dataSet.HasErrors Poi
changeDataSet = dataSet.GetChanges (DataRowState.Modified _
O DataRowState.Added)
PrintValues (changeDataSet, "valori sottoinsieme")
Dim CHANGETABLE Come DataTable
Per ogni CHANGETABLE In changeDataSet.Tables
Se changeTable.HasErrors Poi
Dim changeRow Come DataRow
Per ogni changeRow In changeTable.Rows
Se CInt (changeRow ( "Item", _
DataRowVersion.Current))> 100 Quindi
changeRow.RejectChanges ()
changeRow.ClearErrors ()
Finisci se
Successivo changeRow
Finisci se
Successivo CHANGETABLE
PrintValues (changeDataSet, "valori sottoinsieme riconciliata")
DataSet.Merge (changeDataSet)
PrintValues (set di dati, "Valori uniti")
Console.ReadLine ()
Finisci se
End Sub
9 Aggiungere la seguente procedura secondaria per stampare valori "dataset" nella finestra della console:
Private Sub PrintValues(ByVal dataSet As DataSet, ByVal label As String)
Console.WriteLine (ControlChars.Cr & etichetta)
tavolo fioco come DataTable
Per ogni tabella dataSet.Tables
Console.WriteLine ( "TableName:" & table.TableName)
fila fioco come DataRow
Per ogni riga table.Rows
colonna fioco come DataColumn
Per ogni colonna table.Columns
Console.Write (ControlChars.Tab & "" _
& Row (colonna) .ToString ())
colonna successiva
Console.WriteLine ()
riga successiva
tavolo accanto
End Sub
10 Premere il tasto "F5" per eseguire il programma.