Error en pantalla de incio de sesion en C#

Iniciado por Lin, Abril 15, 2024, 09:59:12 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Abril 15, 2024, 09:59:12 AM Ultima modificación: Abril 15, 2024, 02:46:58 PM por blackdrake
No encuentro la manera en que se cierre la pantalla de inicio de sesion aunque tenga el this.close al pulsar el boton acceder. solo cierra mediante el boton salir: aqui esta el codigo del boton acceder:

Código: C#
private void button1_Click(object sender, EventArgs e)
        {
            conexion.Open();
            string consulta = "select Nombre, Contraseña, Tipo_usuario from Usuarios where Nombre_usuario='"+txtnomusuario.Text+"' and Contraseña= '"+txtcont.Text+"' ";
            SqlCommand comando = new SqlCommand(consulta,conexion);
            lector= comando.ExecuteReader();

            if(lector.HasRows == true)
            {
                MessageBox.Show("Bienvenido");
              
  
              
            }

            if (!(lector.Read()))
            {
                conexion.Close();
                MessageBox.Show("El nombre de usuario o contraseña son incorrectos", "Aviso");
                lector.Close();
                Limpiar();
                return;
            }
            else{
                string tipous = lector.GetString(2);

                
                FRMmenu fRMmenufRMmenu = new FRMmenu();
                fRMmenufRMmenu.TypeUser = tipous;
                fRMmenufRMmenu.Show();
                Limpiar();
                this.close();
                conexion.Close();
            }
        

        } 

Prueba así:

Código: csharp
private void button1_Click(object sender, EventArgs e)
{
    conexion.Open();
    string consulta = "select Nombre, Contraseña, Tipo_usuario from Usuarios where Nombre_usuario='" + txtnomusuario.Text + "' and Contraseña= '" + txtcont.Text + "' ";
    SqlCommand comando = new SqlCommand(consulta, conexion);
    SqlDataReader lector = comando.ExecuteReader();

    if (lector.HasRows)
    {
        if (lector.Read())  // Leemos la primera fila
        {
            MessageBox.Show("Bienvenido");
            string tipous = lector.GetString(2);  // Obtenemos el tipo de usuario de la fila actual

            FRMmenu fRMmenu = new FRMmenu();
            fRMmenu.TypeUser = tipous;
            fRMmenu.Show();  // Muestra el formulario del menú

            this.Close();  // Cierra el formulario actual de inicio de sesión
        }
    }
    else
    {
        MessageBox.Show("El nombre de usuario o contraseña son incorrectos", "Aviso");
        Limpiar();
    }

    lector.Close();  // Cerramos el lector y la conexión
    conexion.Close();
}