Как я могу сделать мою форму входа объектно-ориентированной - PullRequest
0 голосов
/ 12 сентября 2018

Моя проблема в том, что я не знаю, как вызывать текстовые поля и кнопки для моего класса из формы входа в систему.Поэтому я решил поместить свои коды в мои события btnLogin.Как я могу сделать свои коды стиля oop?

 private void btnLogin_Click(object sender, EventArgs e)
        {
            int count = 0;
            Connection connection = new Connection();
            string sql = "SELECT * FROM tbl_Account WHERE Username='" + txtUserName.Text + "' and Password='" + txtPassword.Text + "'";
            MySqlConnection conn = new MySqlConnection(connection.ConnectionString);
            MySqlCommand cmd = new MySqlCommand(sql, conn);
            conn.Open();
            MySqlDataReader dr = cmd.ExecuteReader();

            while (dr.Read())
            {
                count++;
            }
            if (count == 1)
            {
                MessageBox.Show("Login Successfully!");
                this.Hide();
                main.showMeForm4(this);
            }
            else
            {
                txtPassword.Focus();
                MessageBox.Show("Username or Password Is Incorrect");
                txtUserName.Text = "";
                txtPassword.Text = "";

            }
            conn.Close();
        }

1 Ответ

0 голосов
/ 12 сентября 2018

Поместите свою бизнес-логику в отдельный класс: Не согласовывайте SQL-запрос ( SQL-инъекции ). BusinessLogic класс

public bool Authorize(string userName, string userPassword)
       {
            Connection connection = new Connection();
            string sql = "SELECT Count(*) FROM tbl_Account WHERE Username=@userName and Password=@userPassword";
            MySqlConnection conn = new MySqlConnection(connection.ConnectionString);
            MySqlCommand cmd = new MySqlCommand(sql, conn);
            cmd.Parameters.AddWithValue("@userName",userName);
            cmd.Parameters.AddWithValue("@userPassword",userPassword);
            int count = 0;
            try
            {
               conn.Open();
               int count = int.TryParse(cmd.ExecuteScalar().ToString());                
            }
            finally
            {
              con.Close();
            }
            return count==1;
       }

Назовите это:

BusinessLogic businessLogic = new BusinessLogic();

private void btnLogin_Click(object sender, EventArgs e)
        {
            if (businessLogic.Authorize(txtUserName.Text, txtPassword.Text)
            {
                 MessageBox.Show("Login Successfully!");
                 this.Hide();
                 main.showMeForm4(this);
            }
            else
            {
                 txtPassword.Focus();
                MessageBox.Show("Username or Password Is Incorrect");
                txtUserName.Text = "";
                txtPassword.Text = "";
            }
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...