none
Como leo una listview con 3000 fila y 50 columnas mediante Threads RRS feed

  • Pregunta

  • Estimados:

    tengo una aplicación windows form con c# que importa los datos de un Excel hacia una listview la cual valido celda a celda para ver si es valida con los datos de la base de datos...

    y una vez que esta validada la guardo en la base de datos. EL PROBLEMA, es que es mucha información y si alguien apreta un botón aparece la pantala bloqueada y el mensaje "no reponde"

    como le paso los valores de una listview a un hilo de datos para poder trabajarlo con un ejemplo bastaría.

    de antemano gracias


    lunes, 9 de marzo de 2015 2:40

Respuestas

  • hola

    >>importo un excel

    que tecnica o libreria usas para esta operacion ?

    >>valido si las celdas que ingreso el usuario son válidas

    esto no vas a poder realizarlo en un thread porque desde este no puedes acceder a los controles del forma, no de forma directa

    sino como se comenta aqui

    Acceder a un control desde otro hilo

    o sea podrias una parte que se realice en un hilo pero cuando acedas al control generara un freeze de la pantalla

    una vez que todo esta validado leo la listview y la guardo en otra tabla donde se encuentran los datos definitivos

    porque en lugar de un listview no usaste un datagridview? de esta forma podrias haber tomado el datatable o lista a la cual se vincula y trabjar con los datos en el thread

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    lunes, 9 de marzo de 2015 12:45

Todas las respuestas

  • No puede acceder a los elementos del ListView desde otros hilos.  Lo que tiene que hacer es cargar los datos de Excel en memoria, como por ejemplo en un List<>.  Esa lista entonces podrá usarla en hilos.


    Jose R. MCP
    Code Samples

    lunes, 9 de marzo de 2015 2:57
    Moderador
  • hola

    >>como le paso los valores de una listview a un hilo de datos para poder trabajarlo con un ejemplo bastaría.

    porque tienes que pasar la lista a un control para poder trabajarla ? los controles se usan cuando quieres interaccion con el usuario, sino trabaja con variables (sean List<> o datatable)

    no se como procesar el excel si usas las api de interop de office, ado.net para acceder al excel como si fuera una db o si usas alguna libreria de open xml

    -----

    podrias suar ado.net para acceder a los datos del excel

      

      

    Read Data from Excel using OLEDB in VB.NET 2005 

    y tanto la lectura como el proceso de validacion contra la db podrias lanzarlo en un thread para que no bloquee la pantalla

    pero recuerda que desde un thread no puedes acceder a los controles del form, no al menos de forma directa

    Acceder a un control desde otro hilo

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    lunes, 9 de marzo de 2015 3:04
  • Primero que nada  muchas gracias por tomar un tiempo para responderme

    el proceso es el siguiente

    • importo un excel (el usuario selecciona un excel trabajado , con una estructura determinada)
    • luego de eso, valido si las celdas que ingreso el usuario son válidas (cabe señalar que tengo que hacer consultas a la base de datos para validar los datos con distintas tablas) (si hay errores les muestro en que fila y cual es el error)
    • una vez que todo esta validado leo la listview y la guardo en otra tabla donde se encuentran los datos definitivos

    con esto el usuario en vez de modificar 3000 registros en forma manual donde cada fila puede tener 20 modificaciones en los campos, hago que modifique un excel, el cual es mas simple para el usuario y una vez validado lo subo a la tabla de base de datos definitiva...

    si tienen alguna sugerencia para poder mejorar el proceso se los agradecería.

    lunes, 9 de marzo de 2015 12:22
  • hola

    >>importo un excel

    que tecnica o libreria usas para esta operacion ?

    >>valido si las celdas que ingreso el usuario son válidas

    esto no vas a poder realizarlo en un thread porque desde este no puedes acceder a los controles del forma, no de forma directa

    sino como se comenta aqui

    Acceder a un control desde otro hilo

    o sea podrias una parte que se realice en un hilo pero cuando acedas al control generara un freeze de la pantalla

    una vez que todo esta validado leo la listview y la guardo en otra tabla donde se encuentran los datos definitivos

    porque en lugar de un listview no usaste un datagridview? de esta forma podrias haber tomado el datatable o lista a la cual se vincula y trabjar con los datos en el thread

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    lunes, 9 de marzo de 2015 12:45