none
¿Como puedo cambiar el orden de escritura de una tabla de un dataset? RRS feed

  • Pregunta

  • Tengo un dataset con varias tablas, esta estructura se carga al dataset de un archivo .xsd

    2 de estas tablas estan relacionadas, la 1ra con la llave primaria ademas de otros campos y la 2a con llave foranea a la 1a.

    ejemplo

    Tabla1(Id1,Fecha)

    Tabla 2(Id2,Id1,Importe)

    Al generar el archivo xml con el metodo WriteXml del dataset lo hace de la sig forma:

     

    <Tabla1 >
      < Fecha > 2010-10-27 </ Fecha >
      < Tabla2 Importe= 100.00 / >
    </Tabla1>

    Existe alguna forma de que en el xml generado aparezca primero el elemento Tabla2
    Cual es la diferencia para que un campo lo escriba como atributo o como elemento?(El campo fecha lo escribe como elemento a diferencia de importe que es atributo)


    martes, 15 de febrero de 2011 22:46

Todas las respuestas

  • Hola A_X;

    La forma en la que se serializa una estructura dataset está en su partial class [datasettipado].designer.vb. Si quieres modificar el orden en el que se escribe deberas buscar en el code como lo hace, aunque es complicadete pero se puede hacer.

    A primera vista y referente a la serialización que muestras de ejemplo tu estructura tipada tiene modificado la forma de mapear las columnas.

    Hasta donde sé cuando creamos un dataset tipado en diseño las columnas tienen por defecto que se mapeen como Elementos aunque esto se puede modificar y cambiarlo a Atributo, Hidden o Elemento, en tu caso las columnas Id estan ocultas, el campo importe esta como atributo y fecha como elemento. Al igual que el orden de serializacion estas modificaciones se realizan en la partial class dataset.designer.vb de tu estructura tipada...

    Por cada tabla que tenga tu estructura tipada tendra un metodo InitClass() en su partial class, entre otras cosas instancia las columnas que usará tu datatable, en el objeto datacolum uno de los valores cuando instanciamos  es un enumerador (MappintType) por defecto tienen: Global.System.Data.MappingType.Element, si lo modificas modificas la forma en la que se mapean al serializar tu objeto.

    Ahh que la tabla2 salga dentro de la tabla1 es porque su relacion es anidada.

    Saludos...

     

     

     

     


    Danicuco - 2011
    miércoles, 16 de febrero de 2011 17:11