Underc0de

Foros Generales => Dudas y pedidos generales => Mensaje iniciado por: Lin en Abril 15, 2024, 09:59:12 AM

Título: Error en pantalla de incio de sesion en C#
Publicado por: Lin en Abril 15, 2024, 09:59:12 AM
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#) [Seleccionar]
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();
            }
       

        }
Título: Re:Error en pantalla de incio de sesion en C#
Publicado por: blackdrake en Abril 15, 2024, 02:46:46 PM
Prueba así:

Código (csharp) [Seleccionar]
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();
}