Buenas!
A ver si consigo explicar lo que me sucede: tengo dos servidores de datos con las mismas base de datos y tengo que actualizar los datos de uno en el otro. En el proyecto tengo dos dataset tipados haciendo referencia cada uno de ellos a un servidor. Al usar el método Merge se me actuliza el dataset con los valores nuevos y los modificados, pero cuando le hago un Update al tableadapter no me guarda los cambios en el servidor.
¿Alguna idea de qué tengo mal o por qué pasa esto? ¿puedo hacer esto de alguna forma?
Os pongo el código por si os sirve de algo.
Gracias.
En el Load lleno las tablas de los dataset
Private Sub frmActualizaBD_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.taCod_PaisesOrigenLocal.Fill(Me.DsLocal.Cod_Pai sesOrigen)
Me.taCod_PaisesOrigenDatabase.Fill(Me.DsDatabase.C od_PaisesOrigen)
PrintValues(Me.DsDatabase.Cod_PaisesOrigen, "PaisesOrigen Database Original")
PrintValues(Me.DsLocal.Cod_PaisesOrigen, "PaisesOrigen Local Original")
End Sub
Al darle al botón hago el Merge y el Update
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Console.WriteLine("Merging...")
Me.DsLocal.Cod_PaisesOrigen.Merge(Me.DsDatabase.Co d_PaisesOrigen)
PrintValues(Me.DsDatabase.Cod_PaisesOrigen, "PaisesOrigen Database Merge")
PrintValues(Me.DsLocal.Cod_PaisesOrigen, "PaisesOrigen Local Merge")
taCod_PaisesOrigenLocal.Update(Me.DsLocal.Cod_Pais esOrigen)
MessageBox.Show("LISTO")
End Sub
con esta función escribo en la consola el valor de los datatables y es ahí donde veo que sí está actualizado
Private Sub PrintValues(ByVal table As DataTable, ByVal label As String)
' Display the values in the supplied DataTable:
Console.WriteLine(label)
For Each row As DataRow In table.Rows
For Each column As DataColumn In table.Columns
Console.Write("{0}{1}", ControlChars.Tab, row(column, _
DataRowVersion.Current))
Next column
Console.WriteLine()
Next row
End Sub