none
Como convertir un DataSet en Objeto Clase C# ? RRS feed

  • Pregunta

  • Hola...

    Tengo un DataSet  contentivo con algunas Tablas  y Una calse que contiene clases anidadas de cada Tabla, lo que nesecito hacer  es  convertir el DataSet en el Objeto Clase para luego serializar en un Json


    EFRAIN MEJIAS C VALENCIA - VENEZUELA


    domingo, 30 de septiembre de 2018 20:28

Respuestas

  • Me temo que no hay ningún automatismo para ello. Tendrás que recorrer con un bucle las filas del dataset y por cada fila instanciar la clase donde quieres guardar los datos, y luego por cada columna de esa fila asignarla al campo de la clase.

    Si son muchísimos campos, y tienen el mismo nombre que las columnas del dataset, y son del mismo tipo, puedes usar System.Reflection para convertirlos todos con un bucle que itere sobre las columnas (o sobre el GetProperties de la clase). Pero si has tenido que usar en la clase ciertos nombres específicos para que los genere en el JSON, seguramente este mecanismo no te servirá y tendrás que asignar los campos uno por uno.

    Por cierto, si solo estás usando la clase para eso (generar el JSON), a lo mejor te compensa prescindir de la clase y escribir el JSON directamente desde el DataSet. Al fin y al cabo no es más que un texto con los nombres de columna y los valores, que lo puedes construir con un bucle que recorra las columnas. Si de todas maneras vas a tener que escribir el bucle para pasar los datos a la clase, podrías usar ese mismo bucle para escribir el JSON y prescindir de la clase.

    domingo, 30 de septiembre de 2018 20:37
    Moderador

Todas las respuestas

  • Me temo que no hay ningún automatismo para ello. Tendrás que recorrer con un bucle las filas del dataset y por cada fila instanciar la clase donde quieres guardar los datos, y luego por cada columna de esa fila asignarla al campo de la clase.

    Si son muchísimos campos, y tienen el mismo nombre que las columnas del dataset, y son del mismo tipo, puedes usar System.Reflection para convertirlos todos con un bucle que itere sobre las columnas (o sobre el GetProperties de la clase). Pero si has tenido que usar en la clase ciertos nombres específicos para que los genere en el JSON, seguramente este mecanismo no te servirá y tendrás que asignar los campos uno por uno.

    Por cierto, si solo estás usando la clase para eso (generar el JSON), a lo mejor te compensa prescindir de la clase y escribir el JSON directamente desde el DataSet. Al fin y al cabo no es más que un texto con los nombres de columna y los valores, que lo puedes construir con un bucle que recorra las columnas. Si de todas maneras vas a tener que escribir el bucle para pasar los datos a la clase, podrías usar ese mismo bucle para escribir el JSON y prescindir de la clase.

    domingo, 30 de septiembre de 2018 20:37
    Moderador
  • hola

    No hay nada magico pero podrias ayudarte con las extensiones que se menciona aqui

    Convert DataSet to List

    en realidad convieten un DataTable a una clase, en donde la columna del datatable debe concidir con uan propiedad

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    lunes, 1 de octubre de 2018 3:48