@FFFFFFFFFFFFFFFF

Авторизация c# mysql., разделение пользователей!?

C# WinForms Mysql, сделал авторизацию через логин/пароль ( заранее вписаны в базу данных, без регистрации ). Как сделать что бы допустим пользователю который ввел логин/пароль Admin/Admin открывалось одно окно, а пользователю который ввел user/user открывалось другое окно.
Не особо понимаю как это можно реализовать...
  • Вопрос задан
  • 3810 просмотров
Пригласить эксперта
Ответы на вопрос 1
Nie_yar
@Nie_yar
Начинающий программист.
Представим, что у тебя есть таблица user
В этой таблице следующие колонки:
  • ID
  • Name
  • Password
  • User_Role


Тогда на кнопку входа вешаешь событие клик и в ней пишешь следующий код:
string connStr = "server=localhost; port=3306; username=root; password= root; database=bd;";
string sql = "SELECT * FROM `user` WHERE `Name` = @un and  `Password`= @up";

MySqlConnection conn = new MySqlConnection(connStr);
conn.Open();

DataTable table = new DataTable();
MySqlDataAdapter adapter = new MySqlDataAdapter();

MySqlCommand command = new MySqlCommand(sql, conn);
command.Parameters.Add("@un", MySqlDbType.VarChar, 25);
command.Parameters.Add("@up", MySqlDbType.VarChar, 25);

command.Parameters["@un"].Value = TextBox1.Text;
command.Parameters["@up"].Value = TextBox2.Text

adapter.SelectCommand = command;
adapter.Fill(table);

if (table.Rows.Count > 0) 
{ 
      userRole(); // метод, который будет открывать разные формы в зависимости от пользователя
}

conn.Close();


Далее мы создаем новый метод, который называем userRole
string UserName = TextBox1.Text;;

string connStr = "server=localhost; port=3306; username=root; password= root; database=bd;";
string sql = "SELECT User_Role FROM `user` WHERE `Name` = @un";

MySqlConnection conn = new MySqlConnection(connStr);
conn.Open();

MySqlParameter nameParam = new MySqlParameter("@un", UserName);

 MySqlCommand command = new MySqlCommand(sql, conn);
 command.Parameters.Add(nameParam);

string Form_Role = command.ExecuteScalar().ToString();

Switch(Form_Role)
{
case "Администратор": Form.ActiveForm.Close(); Form1 f1 = new Form1(); f1.Show(); break;
default:  Form.ActiveForm.Close(); Form2 f2 = new Form2(); f2.Show();
}
conn.Close();

Надо учитывать, что имя пользователя должно быть индивидуальным.
Код я не тестировал, но должен заработать. В крайнем случае ты должен понять в каком направлении двигаться.

Если более опытные коллеги нашли какой-то недочет, то поправьте меня.
П.С. Надеюсь, что помог.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы