Пример #1
0
        private void button1_Click(object sender, EventArgs e)
        {
            conexionBD    conexion     = conexionBD.getConexion();
            SqlConnection conexion_sql = new SqlConnection(conexion.get_cadena());

            SqlCommand verificacion_usuario = new SqlCommand("ZTS_DB.verificar_usuario", conexion_sql);

            verificacion_usuario.CommandType = CommandType.StoredProcedure;
            verificacion_usuario.Parameters.AddWithValue("@username", SqlDbType.Char).Value = Usuario.Text;

            SqlCommand verificacion_password = new SqlCommand("ZTS_DB.verificar_password", conexion_sql);

            verificacion_password.CommandType = CommandType.StoredProcedure;
            verificacion_password.Parameters.AddWithValue("@username", SqlDbType.Char).Value = Usuario.Text;
            verificacion_password.Parameters.AddWithValue("@password", SqlDbType.Char).Value = Password.Text;

            conexion_sql.Open();

            try
            {
                verificacion_usuario.ExecuteNonQuery();
                //verifico contraseña, si le error resto una chance
                try
                {
                    verificacion_password.ExecuteNonQuery();
                }
                catch (SqlException exepcion)
                {
                    SqlError errores = exepcion.Errors[0];
                    MessageBox.Show(errores.Message.ToString(), "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error);

                    contador++;
                    if (contador == 3)
                    {
                        contador = 0;
                        SqlCommand inhabilitar_usuario = new SqlCommand("ZTS_DB.inhabilitacion_usuario", conexion_sql);
                        inhabilitar_usuario.CommandType = CommandType.StoredProcedure;

                        SqlParameter username = new SqlParameter("@username", SqlDbType.Char);
                        username.Direction = ParameterDirection.Input;
                        inhabilitar_usuario.Parameters.Add(username);

                        username.Value = Usuario.Text;

                        inhabilitar_usuario.ExecuteNonQuery();
                    }
                    return;
                }

                contador = 0;

                //Ahora, cargamos el usuario y sus permisos. Al ser un singleton, se crea una sola vez, y
                // cuando cerramo sesion lo dejamos nulo. Patron en donde solo existe 1 objeto posible.
                this.crear_sesion(Usuario.Text.ToString());

                Form menu_principal = new Interfaces.menu_principal();
                menu_principal.Show();

                this.Visible = false;
            }
            catch (SqlException exepcion)
            {
                SqlError errores = exepcion.Errors[0];
                MessageBox.Show(errores.Message.ToString(), "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

            conexion_sql.Close();
        }