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

Importar un xml a un dataset

Estas en el tema de Importar un xml a un dataset en el foro de .NET en Foros del Web. Hola a todos! Mi problema es el siguiente, mi aplicación tiene que tener una utilidad para importar datos desde un fichero xml a la base ...
  #1 (permalink)  
Antiguo 10/01/2005, 03:35
 
Fecha de Ingreso: diciembre-2003
Ubicación: Alicante
Mensajes: 19
Antigüedad: 20 años, 11 meses
Puntos: 0
Importar un xml a un dataset

Hola a todos! Mi problema es el siguiente, mi aplicación tiene que tener una utilidad para importar datos desde un fichero xml a la base de datos. Con las funciones ReadXml y ReadXmlSchema cogería el esquema de las tablas y los datos, hasta ahí bien, la pega es que en el xml hay datos relacionados que no respeta, por ejemplo mi base de datos tiene ya:

Provincias
----------
idprovincia: 1
nombre: Alicante

Poblaciones
-------------
idpoblacion: 1
nombre: Alcoy
provincia: 1

y el xml contiene:

<Provincias>
<idprovincia>1</idprovincia>
<nombre>Almeria</nombre>
<Poblaciones>
<idpoblacion></idpoblacion>
<nombre>Mojacar</nombre>
<provincia>1</provincia>
</Poblaciones>
</Provincias>


Cuando uso el readxml me mete la provincia Almeria con clave primaria 2 y la población Mojacar con provincia 1, en vez de 2, ya que se actualiza el identificador pero no la clave ajena.

¿Qué puedo hacer?
Gracias.
  #2 (permalink)  
Antiguo 10/01/2005, 09:17
 
Fecha de Ingreso: mayo-2004
Ubicación: Guadalajara, Jalisco, México
Mensajes: 724
Antigüedad: 20 años, 6 meses
Puntos: 6
Dim dsx As DataSet
dsx.EnforceConstraints = False
dsx.ReadXml("tu.xml")

dsx.EnforceConstraints = True



Saludos
  #3 (permalink)  
Antiguo 10/01/2005, 10:01
 
Fecha de Ingreso: diciembre-2003
Ubicación: Alicante
Mensajes: 19
Antigüedad: 20 años, 11 meses
Puntos: 0
Gracias por contestar Stream. Parece que no me he explicado bien, cuando inserto los datos en el dataset mediante el readxml me lo hace bien, el problema es cuando quiero actualizar los datos del dataset a la base de datos, al hacer el update:

Código:
ds.ReadXmlSchema(Application.StartupPath & "\EsquemaTemporal.xsl")
ds.ReadXml(fichero.Text)

For i = 0 To ds.Tables.Count - 1
   Try
         strsql = "select * from " & ds.Tables(i).TableName
         objda = New OleDbDataAdapter(strsql, bd)
         objda.MissingSchemaAction = MissingSchemaAction.AddWithKey
         objcb = New OleDbCommandBuilder(objda)
         objda.Update(ds, ds.Tables(i).TableName)
   Catch ex2 As Exception
         MsgBox(ex2.Message)
   End Try
Next
Cuando por ejemplo durante el update se van metiendo las provincias, su clave primaria ya no es la del dataset sino la que le corresponde en la base de datos (es un autonumérico) pero la clave ajena de poblaciones a provincias no se me actualiza con ese nuevo valor que se le ha dado a la clave primaria de provincias y entonces la referencia ya no está bien, no se si me explico bien.

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 22:55.