none
problemas con barra de progreso wpf RRS feed

  • Pregunta

  • amigos tengo una ventana donde se realizan varios tipos de búsqueda en la base de datos en el evento clik de la busqueda ejecuto 

    //le paso al hilo un método que contiene la consulta a la base de datos
    
                new System.Threading.Thread(cedula).Start();
    
               
                //aquí lanzo otro método que contiene la animación de la barra de progreso 
                animacion();
    

    en el metodo cedula tengo esto 

    //realizo la consulta 
    
    MySqlConnection myConnection = new MySqlConnection(myConnectionString);
                myConnection.Open();
                string mySelectQuery = @"SELECT datos.nacionalidad, datos.cedula, datos.primer_apellido, datos.segundo_apellido, datos.primer_nombre, datos.segundo_nombre, datos.codigo_centro, centros.cod_centro, centros.tipo, centros.cod_estado, centros.cod_municipio, centros.cod_parroquia, centros.nombre_centro, centros.direccion_centro, centros.centro_nuevo
    FROM datos, centros WHERE  datos.cedula=?datos.cedula and centros.cod_centro = datos.codigo_centro";
    
    //luego retraso esto proceso por 5 segundos y para manipular la interfas uso esto 
    
    
    
                System.Threading.Thread.Sleep(5000);
             
                Dispatcher.BeginInvoke(DispatcherPriority.ContextIdle, (ThreadStart)delegate
                {
     //ejecuto la consulta anterior y comprueba el parametro 
    
     MySqlCommand myCommand = new MySqlCommand(mySelectQuery, myConnection);
    
                        myCommand.Parameters.AddWithValue("?datos.cedula", cedulatxt.Text);
                        MySqlDataAdapter da = new MySqlDataAdapter(myCommand);
                        DataTable dt = new DataTable();
                        da.Fill(dt);
                                          
                        MySqlDataReader Reader;
    
                        Reader = myCommand.ExecuteReader();
      
    
                        while (Reader.Read())
                        {
    
                            todo.Add(new nombres()
                            {
                                //se agregan los datos al listview en sus respectivas culumnas y filas
                                
                            });
     
    //al finalizar oculto el  COPA_DATA que es un control personalizado que simula la carga de la barra de progreso 
          
     COPA_DATA.Visibility = System.Windows.Visibility.Hidden;
    
    //muestro el listview cargado
           DataList.ItemsSource = todo;
    

    el problema es el siguiente así como esta todo funciona bien pero solo la primera vez que ejecuto la aplicación, al tratar de realizar otra búsqueda la animacion no se reproduce al igual que con esta manera de usar el dispatcher.beginInvoke no puedo usar el try catch para mostrar un mensaje si la cedula ingresada no existe en el sistema esto quiere decir que cuando ingreso un numero que no existe en el sistema se reproduce la animación pero no puedo mostrar ningún mensaje que no encontró resultados espero que me entiendan 



    brahman

    miércoles, 29 de agosto de 2012 18:12

Todas las respuestas

  • la verdad esq nesecito simular una carga de datos mientras se ejecuta la consulta porq la base de datos tiene mas de 1 millon de registros y cada consulta se tarda aproximadamente 13 segundos en esos 13 segundo la aplicación como sabrán queda congelada 

    brahman

    miércoles, 29 de agosto de 2012 18:18
  • Mi recomendación es que cada vez que hagas una consulta reinicia el progress bar , asi comenzara desde 0 y no te dara problemas..

    Suerte!!


    Si mi respuesta te ha ayudado a resolver tus problemas, Selecciona "Me ha servido como ayuda"

    lunes, 10 de septiembre de 2012 18:30