none
De un DataSet Saber que RRS feed

  • Pregunta

  • Estoy en una aplicación que tiene muchos dataSet algunos tienen varios TableAdapter definidos

    ¿Cómo puedo saber TableApater se utilizando en cada momento y como los cambian?

    Me explico

    tengo un DataSet llamado miDataSet

    Este tiene Tabla_1, Tabla_2 y Tabla_3

    Observo Tabla_1 y veo que Tabla_1TableAdapter hay varios: Fill_1,Fill_2,Fill_3

    La tabla: Tabla_1 tiene un campo que se llama EsCierto

    ¿Cómo puedo saber cuando se utiliza un TableAdapter u otro?¿Quién notifica el cambio a un fill distinto?

    Llego al código y veo esto: 

    miDataSet mds= new miDataSet();

    o cuando se pone //Desplegablemds es otro dataSet de tipo miDataSet

    IEnumerable<miDataSet.Tabla_1Row> lista_tabla1 = 
                    Program.Desplegablemds.Tabla_1.Where(j => j.EsCierto);

    pero no veo quien lo está especificando, ¿en que parte del archivo miDataSet.xsd es que no lo localizo si al inicializarse utiliza uno u otro?

    miércoles, 27 de junio de 2018 10:21

Todas las respuestas

  • [...] en que parte del archivo miDataSet.xsd es que no lo localizo si al inicializarse utiliza uno u otro

    No, no lo localizas porque no existe esa informacion en el xsd. El DataSet nunca sabe desde donde esta siendo utilizado. El unico sitio donde existe esa informacion es en el codigo fuente que instancia el dataset. Es decir, tienes que buscar por tu programa donde hace (por ejemplo) miDataSet mds= new miDataSet(); y entonces sabes que todos los sitios donde haga mds.LoQueSea esta llamando a miDataSet. Recuerda mirar bien en TODOS los sitios donde haya codigo: un dataset puede estar instanciado dentro del .designer.cs debido a que Visual Studio haya generado ese codigo, aunque tu no lo hayas escrito. Este serial el caso de Program.Desplegablemds que has mencionado. Haz click-derecho en Desplegablemds y selecciona "buscar todas las referencias". Entre ellas encontraras cual es la linea donde se inicializa esa variable asignandole una instancia de un dataset, y asi sabras cual es el dataset asignado.
    miércoles, 27 de junio de 2018 11:26
    Moderador
  • hola

    La unica forma que se me ocurre podrias hacer eso es parseando el xml del xsd, o sea no usando linq ni nada parecido sino procesando el xml que define al dataset

    entonces podrias aplicar busquedas sobre los nodos

    How to parse a XSD file

    analiza la respuesta que menciona el uso del XmlSchemaSet

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 27 de junio de 2018 12:55