Tecnología

Inicio

Cómo utilizar dos conjuntos de datos en VB

Cómo utilizar dos conjuntos de datos en VB


El uso de dos conjuntos de datos en Visual Basic es una de las mejores maneras de mantener los datos sincronizados cuando un usuario realiza cambios en los datos originales. Un "conjunto de datos" es una caché en memoria de los datos recuperados de una fuente de datos, como una mesa. Los programadores suelen cargarse datos de una tabla de base de datos a un "conjunto de datos" y permiten al usuario realizar cambios en los datos originales. Un segundo "conjunto de datos" se utiliza para capturar los cambios y fusiona de nuevo a la original "conjunto de datos" utilizando el método de "DataSet.Merge".

Instrucciones

1 Lanzamiento de Microsoft Visual Studio, haga clic en "Nuevo proyecto" en el panel izquierdo de la pantalla del ordenador, y ampliar "Visual Basic" por debajo "Plantillas instaladas." Haga clic en "Windows" y haga doble clic en "Aplicación de consola" desde el centro de la ventana de diálogo para crear un nuevo proyecto de la consola.

2 Copia y pega el código siguiente para crear el primer "conjunto de datos", una mesa, dos columnas y tres filas:

Dim dataSet As New DataSet("dataSet")

Dim tabla como nuevo DataTable ( "Artículos")

Dim idColumn Como Nueva DataColumn ( "id", Type.GetType ( "System.Int32"))

idColumn.AutoIncrement = True

Dim itemColumn Como Nueva DataColumn ( "Punto", Type.GetType ( "System.Int32"))

Dim fila Como DataRow

3 Agregue la siguiente línea de código para crear el segundo "conjunto de datos"

Dim changeDataSet As DataSet

4 Añadir coulumns a la mesa y agregue la tabla al "conjunto de datos"

table.Columns.Add(idColumn)

table.Columns.Add (itemColumn)

dataSet.Tables.Add (tabla)

5 Añadir diez filas de datos a la tabla y aceptar los cambios:

Dim i As Integer

Para i = 0 a 9

fila = table.NewRow ()

fila ( "elemento") = i

table.Rows.Add (fila)

Siguiente yo

dataSet.AcceptChanges ()

6 Imprimir valores "DataSet" a la ventana de la consola:

PrintValues(dataSet, "Original values")

7 Modificar la tabla mediante la adición de nuevos valores para las dos primeras filas, añadiendo una nueva fila, y la adición de un error de una de las filas:

table.Rows(0)("Item") = 50

table.Rows (1) ( "artículo") = 111

fila = table.NewRow ()

fila ( "elemento") = 74

table.Rows.Add (fila)

table.Rows (1) .RowError = "más de 100"

PrintValues ​​(conjunto de datos, "modificados y nuevos objetos de valor")

8 Compruebe si la tabla tiene cambios y si lo hace entonces fusionar los cambios de nuevo al primer "conjunto de datos" e imprimir los resultados:

If dataSet.HasChanges(DataRowState.Modified Or DataRowState.Added) _

Entonces y dataSet.HasErrors

changeDataSet = dataSet.GetChanges (DataRowState.Modified _

O DataRowState.Added)

PrintValues ​​(changeDataSet, "valores" Subset)

Dim CHANGETABLE Como DataTable

Para cada CHANGETABLE En changeDataSet.Tables

Si changeTable.HasErrors Entonces

Dim changeRow Como DataRow

Para cada changeRow En changeTable.Rows

Si CInt (changeRow ( "Punto", _

DataRowVersion.Current))> 100 Entonces

changeRow.RejectChanges ()

changeRow.ClearErrors ()

Terminara si

Siguiente changeRow

Terminara si

Siguiente CHANGETABLE

PrintValues ​​(changeDataSet, "valores de subconjuntos reconciliada")

DataSet.Merge (changeDataSet)

PrintValues ​​(conjunto de datos, "Valores") combinadas

Console.ReadLine ()

Terminara si

End Sub

9 Agregue el siguiente procedimiento sub para imprimir valores "DataSet" a la ventana de la consola:

Private Sub PrintValues(ByVal dataSet As DataSet, ByVal label As String)

Console.WriteLine (ControlChars.Cr y etiqueta)

Como vaga mesa DataTable

Para cada tabla en dataSet.Tables

Console.WriteLine ( "TableName:" & table.TableName)

Dim fila Como DataRow

Para cada fila de table.Rows

Como la columna Dim DataColumn

Para cada columna table.Columns

Console.Write (ControlChars.Tab & "" _

Y fila (columna) .ToString ())

siguiente columna

Console.WriteLine ()

siguiente fila

A continuación la tabla

End Sub

10 Pulse la tecla "F5" para ejecutar el programa.