Basado en la conversación, asumo que dejaremos lo siguiente como respuesta: Una barra de progreso no es el elemento correcto pues solamente funciona cuando pueden definirse y comprobarse pasos intermedios. Como el progreso de la actualización de un dato en base de datos está oculto a la aplicación que la solicita, lo correcto es usar un "spinner" o un mensaje de espera y no una barra de progreso.
Ocupar un progressbar C# en una petición de base de datos
Octavio Fco. Mtz. Carrión
5
Puntos de reputación
Hola tengo el siguiente código que hace referencia a una petición a una base de datos, me gustaría poner un progreesbar que vaya de forma sincronizada con la petición cuando inicia y termina. He intentado algunas cosas pero honestamente no he logrado el objetivo, gracias por su ayuda.
public void Hilo_Buscar_Colaborador()
{
try
{
using (MySqlConnection conexion = ConexionBD.ObtenerConexion())
{
using (MySqlCommand comando = new MySqlCommand(("NexusRH_Obtener_Colaborador"), conexion))
{
comando.CommandType = CommandType.StoredProcedure;
comando.CommandTimeout = 0;
comando.Parameters.AddWithValue("_Numero_de_Colaborador", TxtBuscarNumeroDeColaboradorRH.Text.Trim());
using (MySqlDataReader ObtenerDatos = comando.ExecuteReader())
{
if (ObtenerDatos.Read() == true)
{
VariablesCompartidas.IndiceDeColaborador = Convert.ToInt32(ObtenerDatos["INDICE"].ToString());
Invoke(new Action(() =>
{
TxtApellidoMaterno.Text = ObtenerDatos["Apellido_Materno"].ToString();
TxtApellidoPaterno.Text = ObtenerDatos["Apellido_Paterno"].ToString();
TxtBase.Text = ObtenerDatos["Base"].ToString();
TxtCalle.Text = ObtenerDatos["Calle"].ToString();
TxtCEApellidoMaterno.Text = ObtenerDatos["CEmergencia_Apellido_Materno"].ToString();
TxtCEApellidoPaterno.Text = ObtenerDatos["CEmergencia_Apellido_Paterno"].ToString();
TxtCENombres.Text = ObtenerDatos["CEmergencia_Nombre"].ToString();
TxtColonia.Text = ObtenerDatos["Colonia"].ToString();
TxtCorreoElectronico.Text = ObtenerDatos["Correo_Electronico"].ToString();
TxtCiudad.Text = ObtenerDatos["Ciudad"].ToString();
TxtDepartamento.Text = ObtenerDatos["Departamento"].ToString();
TxtEdad.Text = ObtenerDatos["Edad"].ToString();
TxtEdificio.Text = ObtenerDatos["Edificio"].ToString();
TxtEstado.Text = ObtenerDatos["Estado"].ToString();
TxtEstadoCivil.Text = ObtenerDatos["Estado_Civil"].ToString();
DatePickerFecha.Text = ObtenerDatos["Fecha"].ToString();
if (ObtenerDatos["Foto"] == DBNull.Value)//BASE DE DATOS VACIO
{
}
else
{
byte[] imagen = (byte[])ObtenerDatos["Foto"];
PictureBoxColaborador.Image = byteArrayToImage(imagen);//CLAVE 4004 TIENE UN METODO ARRIBA QUE SE LLAMA BYTEARRAYTOIMAGE BUSCALO ARRIBA
}
TxtJefeInmediato.Text = ObtenerDatos["Jefe_Inmediato"].ToString();
TxtLote.Text = ObtenerDatos["Lote"].ToString();
TxtManzana.Text = ObtenerDatos["Manzana"].ToString();
TxtMovil.Text = ObtenerDatos["Movil"].ToString();
TxtCEMovil.Text = ObtenerDatos["Movil_Emergencia"].ToString();
TxtCEFijo.Text = ObtenerDatos["Movil_Emergencia_Fijo"].ToString();
TxtMovilFijo.Text = ObtenerDatos["Movil_Fijo"].ToString();
TxtNacionalidad.Text = ObtenerDatos["Nacionalidad"].ToString();
TxtNombreColaborador.Text = ObtenerDatos["Nombre"].ToString();
TxtNdeColaborador.Text = ObtenerDatos["Numero_de_Colaborador"].ToString();
TxtNumeroExterior.Text = ObtenerDatos["Numero_Exterior"].ToString();
TxtNumeroInterior.Text = ObtenerDatos["Numero_Interior"].ToString();
TxtPais.Text = ObtenerDatos["Pais"].ToString();
TxtCEParentesco.Text = ObtenerDatos["Parentesco"].ToString();
TxtProceso.Text = ObtenerDatos["Proceso"].ToString();
TxtPuesto.Text = ObtenerDatos["Puesto"].ToString();
ComboBoxTipoDeSangre.Text = ObtenerDatos["Tipo_de_Sangre"].ToString();
}));
}
else
{
MessageBox.Show("EL NUMERO DE COLABORADOR " + TxtBuscarNumeroDeColaboradorRH.Text.Trim() + " NO SE ENCONTRO");
}
}
conexion.Close();
}//COMANDO
}//CONEXION
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
}
1 respuesta
Ordenar por: Muy útil
-
José Pablo Ramirez (a. k. a. webJose) 440 Puntos de reputación
2024-01-21T22:50:22.5666667+00:00