none
Comprobación de existencia de usuario RRS feed

  • Pregunta

  • Hola buenos días

    Le explico mi problema, al grano si yo escribo un usuario que existe en un textbox y si existe se muestra una imagen con un check que el usuario existe, pero si fuera lo contrario me tendría que mostrar una imagen validado que no existe. 

    les muestro el código, el código funciona si el usuario existe pero si escribo un nombre o un usuario que no existe no me muestra la imagen que corresponde.

            private void txt_usuario_codigo_de_asociado_TextChanged(object sender, EventArgs e)
            {
                try
                {
                    DataTable Dt = BLS.ExistenciaDeUsuario(txt_usuario_codigo_de_asociado.Text);
    
                    foreach (DataRow Row in Dt.Rows)
                    {
                        if (Row["Usuario"].ToString() != null)
                        {
                            Bitmap Img = Properties.Resources._002_checked1;
    
                            pbx_1.Image = Img;
    
                            txt_nueva_contraseña.Visible = true;
                            txt_repita_contraseña.Visible = true;
                            pbx_2.Visible = true;
                        }
                        else
                        {
                            Bitmap Img = Properties.Resources._001_x_button;
    
                            pbx_1.Image = Img;
    
                            txt_nueva_contraseña.Visible = false;
                            txt_repita_contraseña.Visible = false;
                            pbx_2.Visible = false;
                        }
                    }
                    
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
    
    
            }
    esta es la parte donde hago la comparación 
      public DataTable ExistenciaDeUsuario(string Usuario)
            {
                using (MySqlConnection Conn = new MySqlConnection(ConexionBD))
                {
                    Conn.Open();
                    using (MySqlCommand Cmd = new MySqlCommand(@"SELECT
                                                                    usuario
                                                                FROM
                                                                    tb_usuario
                                                                WHERE
                                                                    usuario = @usuario", Conn))
                    {
                        Cmd.Parameters.AddWithValue("@usuario", Usuario);
                        MySqlDataAdapter Dta = new MySqlDataAdapter(Cmd);
                        DataTable Dt = new DataTable();
                        Dta.Fill(Dt);
                        return Dt;
                    }
                }
            }

     
    viernes, 16 de marzo de 2018 17:57

Respuestas

  • Si el usuario no existe, te llega dt vacío. Por lo tanto el foreach que recorre las filas del dt no ejecuta ninguna iteración, se salta el bucle completo. Por lo tanto, nunca se ejecuta el "else" que tienes DENTRO de ese bucle, y no te pone la imagen. Esa operación tienes que sacarla fuera del bucle, y ejecutar ese código cuando el número de filas del dt sea cero:

    if  (dt.Rows.Count==0) { hacer aquí lo que tenías en el "else" }

    Eso lo puedes hacer antes o después del bucle.

    • Propuesto como respuesta webJoseModerator viernes, 16 de marzo de 2018 20:01
    • Marcado como respuesta Ronal Funes sábado, 17 de marzo de 2018 1:51
    viernes, 16 de marzo de 2018 18:29
    Moderador

Todas las respuestas

  • Si el usuario no existe, te llega dt vacío. Por lo tanto el foreach que recorre las filas del dt no ejecuta ninguna iteración, se salta el bucle completo. Por lo tanto, nunca se ejecuta el "else" que tienes DENTRO de ese bucle, y no te pone la imagen. Esa operación tienes que sacarla fuera del bucle, y ejecutar ese código cuando el número de filas del dt sea cero:

    if  (dt.Rows.Count==0) { hacer aquí lo que tenías en el "else" }

    Eso lo puedes hacer antes o después del bucle.

    • Propuesto como respuesta webJoseModerator viernes, 16 de marzo de 2018 20:01
    • Marcado como respuesta Ronal Funes sábado, 17 de marzo de 2018 1:51
    viernes, 16 de marzo de 2018 18:29
    Moderador
  • Gracias por responder y tenias razón 
    sábado, 17 de marzo de 2018 1:51