Foros del Web » Programación para mayores de 30 ;) » .NET »

Duda DataSet y Merge

Estas en el tema de Duda DataSet y Merge en el foro de .NET en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 08/02/2006, 05:58
 
Fecha de Ingreso: marzo-2003
Mensajes: 85
Antigüedad: 21 años, 1 mes
Puntos: 1
Duda DataSet y Merge

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
  #2 (permalink)  
Antiguo 08/02/2006, 08:47
 
Fecha de Ingreso: marzo-2003
Mensajes: 85
Antigüedad: 21 años, 1 mes
Puntos: 1
Perdón me equivoqué de sub-foro al colocarlo, debería de ir al de win forms... si alguien me lo cambia se lo agradezco...

Gracias.
  #3 (permalink)  
Antiguo 08/02/2006, 16:14
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Ya te aseguraste de hacer un AcceptChanges antes de hacer el update..??

De paso te muevo al al subforo de windows forms

Movido desde subforo de web forms

Salu2
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #4 (permalink)  
Antiguo 09/02/2006, 02:01
 
Fecha de Ingreso: marzo-2003
Mensajes: 85
Antigüedad: 21 años, 1 mes
Puntos: 1
Hola RootK, gracias por contestar y moverme...

Sí, primero no había puesto el AcceptChanges, pero también lo probé añadiéndolo antes del Update y con el mismo resultado... He probado a hacer el AcceptChanges tanto en la tabla como en el dataset...

Me.DsLocal.Cod_PaisesOrigen.AcceptChanges()
Me.DsLocal.AcceptChanges()

Es que ya no se me ocurre que más cosas puedo probar...
  #5 (permalink)  
Antiguo 10/02/2006, 06:06
 
Fecha de Ingreso: marzo-2003
Mensajes: 85
Antigüedad: 21 años, 1 mes
Puntos: 1
Otra pequeña averiguación, a ver si así alguien me puede ayudar:

Después del Merge, escribo los valores de DSLocal y veo los valores nuevos y modificados perfectamente. Sin embargo hago un DSLocal.HasChanges() el resultado es False, evidentemente, por esto luego no actualiza...

¿Alguna nueva sugerencia?

Gracias
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:50.