Как выглядят мои регистрационные коды?
А ты как думаешь? Как, по-вашему, я должен его улучшить? Спасибо, кто может помочь!
Код:
private static SqlConnection conn = new SqlConnection("Data Source = '" + Connection.Server + "'; Database = '" + Connection.DB + "'; User ID = '" + Connection.SQLUsername + "'; Password = '" + Connection.SQLPass + "'"); private static SqlCommand login; private static SqlDataReader rdr; private string user, pass, type; private readonly Login lf; public FormLogin(Login loginform) { this.lf = loginform; } public void sqlLogin() { user = Login.user; pass = Login.pass; try { string cmd = "select Username, Password, Acct_Type from User_Accounts where Username=@user and Password=@pass"; using (login = new SqlCommand(cmd, conn)) { login.Parameters.AddWithValue("@user", user); login.Parameters.AddWithValue("@pass", pass); conn.Open(); rdr = login.ExecuteReader(); if (rdr.HasRows == true) { while (rdr.Read() == true) { getData(); if (type == "Administrator") { //Show the admin form hideForm(); } else { //Show the user form hideForm(); } } } } } catch (Exception) { MessageBox.Show("Error in server configuration", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } finally { if (rdr != null) { rdr.Close(); } if (conn.State == ConnectionState.Open) { conn.Close(); } } } private void getData() { user = rdr.GetString(0); pass = rdr.GetString(1); type = rdr.GetString(2); } private void hideForm() { Login.signin.Hide(); lf.txtUsername.Text = ""; lf.txtPassword.Text = ""; }
Что я уже пробовал:
Я попытался использовать get-set, но в настоящее время это сбивает меня с толку. :\
Richard MacCutchan
Для начала это выглядит так, как будто вы храните пароль в открытом тексте, что является совершенно плохой идеей.