Я новичок в SQL Server и C #. Я работаю над формой входа, которая проверяет, является ли пользователь администратором или обычным пользователем. В моем SQL Server я создал таблицу, в которой хранятся имя пользователя, пароль и роль (администратор или обычный пользователь). Сохраненные данные:
- Для администратора: имя пользователя = admin, пароль = admin, роль = admin
- Для основного пользователя: имя пользователя = пользователь, пароль = пользователь, роль =user
Если пользователь вводит имя пользователя и пароль «admin», он должен быть направлен на страницу администратора, иначе это будет страница пользователя.
Это мой код:
string query = "SELECT * from tbl_login WHERE Username = @username and password=@password";
con.Open();
SqlCommand sqlcmd = new SqlCommand(query, con);
sqlcmd.Parameters.AddWithValue("@username", tbusername.Text);
sqlcmd.Parameters.AddWithValue("@password", tbpswlog.Text);
DataTable dtbl = new DataTable();
SqlDataAdapter sqlsda = new SqlDataAdapter(sqlcmd);
sqlsda.Fill(dtbl);
con.Close();
if (dtbl.Rows.Count == 1)
{
this.Hide();
if (tbusername.Equals("admin"))
{
MessageBox.Show("You are logged in as an Admin");
AdminHome fr1 = new AdminHome();
fr1.Show();
this.Hide();
}
else
{
MessageBox.Show("You are logged in as a User");
UserHome fr2 = new UserHome();
fr2.Show();
this.Hide();
}
}
else
{
MessageBox.Show("Incorrect username or password");
}
Я знаю, что этот код отсутствует и неправильный.
РЕДАКТИРОВАТЬ:
Я пробовал этот код ниже
if (dtbl.Rows.Count == 1)
{
this.Hide();
if (dtbl.Rows[0]["role"].ToString().Equals("admin"))
{
MessageBox.Show("You are logged in as an Admin");
AdminHome fr1 = new AdminHome();
fr1.Show();
this.Hide();
}
else
{
MessageBox.Show("You are logged in as a User");
UserHome fr2 = new UserHome();
fr2.Show();
this.Hide();
}
}
else
{
MessageBox.Show("Incorrect username or password");
}
Но даже если я введу имя пользователя admin и пароль admin, оно будет означать «Вы вошли как пользователь».