Войти с пользовательскими ролями в C#, подключенном к базе данных MS Access

Я довольно новичок в C# и хочу получить совет относительно формы входа в систему.

В настоящее время, когда пользователь вводит свое имя пользователя и пароль, он проверяется в соответствующей базе данных MS Access, а затем загружает форму "Splash_Screen".

Однако, в зависимости от уровня доступа, назначенного пользователю, то есть "Администратор" и "Обычный пользователь", я бы хотел, чтобы он направлял пользователя к отдельным формам, поскольку я не хочу, чтобы "Обычные пользователи" имели те же функции, что и "Администратор".,

У меня есть только 2 типа уровней доступа, то есть "Admin" или "General_User".

private void btn_Login_Click(object sender, EventArgs e)
    {
        connection.Open();
        OleDbCommand command = new OleDbCommand();
        command.Connection = connection;
        command.CommandText = "select * from Account_Details where Email_Address = '"+txt_Username.Text+"' and Password = '" + txt_Password.Text + "'";

        OleDbDataReader reader = command.ExecuteReader();
        int count = 0;
        while (reader.Read())
        {
            count = count + 1;

        }
        if (count == 1)
        {
            this.Hide();
            Splash_Screen f2 = new Splash_Screen();
            f2.Show();

        }
        else if (count > 1)
        { 
            MessageBox.Show("Duplicate Username and Password");
        }
        else
        {
            MessageBox.Show("Username and Password is not correct");
        }

        connection.Close();

    }

1 ответ

Я использовал этот код для достижения аналогичных требований. это сработало для меня. Я надеюсь, что это поможет другим, у кого есть такие требования. я создал два текстовых поля с именами txtusername и txtpassword и один комбинированный список для списка пользователей, а в OleDataAdapter я использовал запрос для извлечения данных из таблицы пользователей, где имя пользователя и пароль совпадают с любыми типами пользователей в текстовом поле, после чего я использовал оператор if, чтобы проверить, если Есть какие-либо записи в таблице, чем во вложенной, если я проверил, что если comboboxroll равен admin, чем show adminform, иначе отображать userform.

 OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM [users] Where [UserName]='" + txtUserName.Text + "' And [pwd]='" + txtPassword.Text + "' And [Roll]='" + cmbroll.Text + "'", conn);
            DataSet ds = new DataSet();
            da.Fill(ds);
            if (ds.Tables[0].Rows.Count > 0)
            {
                if (cmbroll.Text == "Admin")
                {
                    MainFrm f = new MainFrm();
                    f.Show();
                    f.lblLogedUser.Text = txtUserName.Text;
                    this.Hide();
                }
                else {
                    MainFrmUser userform = new MainFrmUser();
                    userform.Show();
                    userform.lblLogedUser.Text = txtUserName.Text;
                    this.Hide();
                }
Другие вопросы по тегам