private void btnIngresar_Click(object sender, EventArgs e) { InformacionDeLaExcepcion = ERespuestaBaseDeDatos.SinErrores; RespuestaDeSesion = ERespuestaDelInicio.DatosCorrectos; RespuestaDeSesion = ClsInicioSesion.ComparaDatos(txtUsuario.Text.ToLower(), txtContraseña.Text, ref InformacionDeLaExcepcion); if (RespuestaDeSesion == ERespuestaDelInicio.DatosCorrectos) { txtContraseña.UseSystemPasswordChar = false; txtUsuario.Text = TextoVisualUsuario; txtContraseña.Text = TextoVisualContraseña; Hide(); FrmPrincipal AbrirFrmPrincipal = new FrmPrincipal(); AbrirFrmPrincipal.FormClosed += CerrarSesion; //Cuando se cierra el formulario principal, se ejecuta el evento CerrarSesion AbrirFrmPrincipal.Show(); } else { if (InformacionDeLaExcepcion != ERespuestaBaseDeDatos.SinErrores) { switch (InformacionDeLaExcepcion) { case ERespuestaBaseDeDatos.ArgumentException: MessageBox.Show($"ArgumentException: La cadena de conexión con la base de datos no " + $"existe \r\n\r\nContacte con el programador para informar y corregir el " + $"error", "ERROR CON LA BASE DE DATOS", MessageBoxButtons.OK, MessageBoxIcon.Error); break; case ERespuestaBaseDeDatos.SqlException: MessageBox.Show($"SqlException: La sentencia para buscar la información es " + $"invalida \r\n\r\nContacte con el programador para informar y corregir el " + $"error", "ERROR CON LA BASE DE DATOS", MessageBoxButtons.OK, MessageBoxIcon.Error); break; case ERespuestaBaseDeDatos.Exception: MessageBox.Show($"Exception: Posible error en la consulta \r\n\r\nContacte con el " + $"programador para informar y corregir el error", "ERROR CON LA BASE DE DATOS", MessageBoxButtons.OK, MessageBoxIcon.Error); break; } } else { switch (RespuestaDeSesion) { case ERespuestaDelInicio.UsuarioInexistente: { lblMensajeDeError.Text = "Usuario incorrecto"; break; } case ERespuestaDelInicio.ClaveIncorrecta: { lblMensajeDeError.Text = "Contraseña incorrecta"; break; } default: { lblMensajeDeError.Text = "Ocurrio un error inesperado al intentar comparar los datos para validar sesion"; break; } } lblMensajeDeError.Visible = true; } } }
public static ERespuestaDelInicio ComparaDatos(string _Usuario, string _Contraseña, ref ERespuestaBaseDeDatos InformacionDeLaExcepcion) { try { //Leo la Cadena de Conexión directamente porque archivo app.config no reconoce la clase ConfigurationMagagement string CadenaDeConexion = ConfigurationManager.ConnectionStrings["DatabaseConnection"].ConnectionString; //Crear la Conexión a la Base de Datos SqlConnection SQLConnection = new SqlConnection(CadenaDeConexion); SQLConnection.Open(); //Crear la sentencia SQL string Consulta = "SELECT Nombre,Clave FROM Usuario"; //Creo un objeto de tipo comando en el que le paso como parametro la consulta y la conexion abierta a la BBDD SqlCommand Comando = new SqlCommand(Consulta, SQLConnection); //Creo un objeto lector de datos basado en mi objeto "Comando" SqlDataReader LectorDeDatos = Comando.ExecuteReader(); //Recorro lo datos de mi tabla while (LectorDeDatos.Read()) { if (LectorDeDatos["Nombre"].ToString().ToLower() == _Usuario && LectorDeDatos["Clave"].ToString() == _Contraseña) { SQLConnection.Close(); return(ERespuestaDelInicio.DatosCorrectos); } if (LectorDeDatos["Nombre"].ToString().ToLower() != _Usuario) { SQLConnection.Close(); return(ERespuestaDelInicio.UsuarioInexistente); } if (LectorDeDatos["Clave"].ToString() != _Contraseña) { SQLConnection.Close(); return(ERespuestaDelInicio.ClaveIncorrecta); } } } catch (ArgumentException) { InformacionDeLaExcepcion = ERespuestaBaseDeDatos.ArgumentException; } catch (SqlException) { InformacionDeLaExcepcion = ERespuestaBaseDeDatos.SqlException; } catch (Exception) { InformacionDeLaExcepcion = ERespuestaBaseDeDatos.Exception; } return(ERespuestaDelInicio.ErrorBaseDeDatos); //Esto para cambiar el estado inicial de correcto a uno correcto }