Контакты
Местоположение
Беларусь, Гродненская обл., Гродно

Наибольший вклад в теги

Все теги (4)

Лучшие ответы пользователя

Все ответы (2)
  • Авторизация c# mysql., разделение пользователей!?

    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();

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

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

Лучшие вопросы пользователя

Все вопросы (7)