none
Mostrar el progreso de una pagina RRS feed

  • Pregunta

  • Hola bun día!!!!!!!!!!

    Estoy desarrollando una aplicacion en asp.net 3.5 con c# y me tope con un problema que no se si se pueda solucionar.

    tengo un boton que se llama Exportar estadisticos que lo que hace es ejecutar un procedimiento que va llenando un dataset.  el procedimiento se ejecuta n veces dependiendo del total de registros que traiga una grid; es decir que si la grid trae 3000 registros el procedimiento se ejecuta 3000 veces y por lo tanto el dataset se llenara con 3000 datos; los cuales voy a exportar a un excel.

    Todo lo anterior ya lo hace bien, el problema es que cuando son muchos registros se tarda mucho; por lo cual me pidieron que se mostrara una barra de progreso. es decir, que mientras se estan ejecutando el procedimiento y llenando el dataset se muestre una barra de progreso para que el usuario vea el avance, pero la verdad es que no tengo ni la mas remota idea de como hacerlo!!!!!!!!!!

    les muestro el codigo del boton Exportar Estadisticos.

    protected void btnExpotarEstadisticos_Click(object sender, EventArgs e)
            {
                    //dsEstadisticas = null;
                    dsEstadisticasFinal = null;
                    string connectionString = "Data Source=VOLTA;Initial Catalog=GSCRIT;Persist Security Info=True;User ID=super;Password=super";
                    SqlConnection connection = new SqlConnection(connectionString);
                    connection.Open();
                    for (int i = 0; i < ucResultados._grEstadisticas.Rows.Count; i++)
                    {
                        string paciente = ucResultados._grEstadisticas.Rows[i].Cells[0].Text;
                        string estado = ucResultados._grEstadisticas.Rows[i].Cells[1].Text;

                        SqlCommand Query = new SqlCommand("STP_Calcula_Estadisticas_Pacientes", connection);
                        Query.CommandType = CommandType.StoredProcedure;
                        Query.Parameters.Add("@FL_PACIENTE", SqlDbType.Int);
                        Query.Parameters.Add("@NOMBREL", SqlDbType.VarChar, 40);
                        Query.Parameters[0].Value = paciente;
                        Query.Parameters[1].Value = estado;
                        Query.ExecuteNonQuery();
                        SqlDataAdapter da = new SqlDataAdapter(Query);
                        da.Fill(dsEstadisticas);

                        if (dsEstadisticasFinal == null)
                        {
                            dsEstadisticasFinal = dsEstadisticas.Clone();
                            //dsEstadisticasFinal.Merge(dsEstadisticas);
                        }
                        else
                            dsEstadisticasFinal.Merge(dsEstadisticas);
                 
                }
                    connection.Close();
                    dsEstadisticas.WriteXml(Server.MapPath("~\\files\\Expediente_" + "Estadisticas" + ".xls"));
                    Response.ContentType = "doc/xls";
                    Response.AppendHeader("Content-Disposition", "attachment; filename=" + "Estadisticas" + ".xls" + "");
                    Response.AppendHeader("Content-Disposition", "attachment; archivo=" + "Estadisticas"+ ".xls" + "");
                    Response.TransmitFile(Server.MapPath("~\\files\\Expediente_" + "Estadisticas" + ".xls"));
                    Response.End();
            }

    Ojala me puedan ayudar. Gracias ...

    lunes, 1 de octubre de 2012 22:35