Войти с пользовательскими ролями в 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();
}