2013-03-20 3 views
0

У меня есть таблица в базе данных, которая имеет столбец UserName и UserRights. UserRights - либо admin, либо user Теперь я хочу отключить некоторые кнопки в другой форме, если UserName, используемый для входа в login form, является только пользователем. Как я это сделаю? У меня есть коды ниже:Как отключить кнопку для некоторых пользователей?

private void button1_Click_1(object sender, EventArgs e) 
    { 
     connection.Open(); 
     OleDbDataReader reader = null; 
     OleDbCommand command = new OleDbCommand("select* from TableAcct", connection); 
     reader = command.ExecuteReader(); 
     while (reader.Read()) 
     { 
      uname.Add(reader["username"].ToString()); 
      password.Add(reader["userpassword"].ToString()); 
      rights.Add(reader["rights"].ToString()); 
     } 
     connection.Close(); 

     int totalItems = uname.Count; 
     int count = 0; 
     string isValidated = ""; 
     while (count < totalItems) 
     { 
      if ((Username.Text == uname[count].ToString()) && (pword.Text == password[count].ToString())) 
      { 
       isValidated = "True"; 
       rights2 = rights[count].ToString(); 
       count = 100; 
      } 
      else 
      { 
       count++; 
      } 
     } 
     if (isValidated == "True") 
     { 
      Mainform mainform1 = new Mainform(); 
      login.ActiveForm.Hide(); 
      mainform1.linkLabel1.Text = Username.Text; 
      mainform1.ShowDialog(); 
      Username.Clear(); 
      pword.Clear(); 

     } 
     else 
     { 
      MessageBox.Show("Invalid Log in. Please try again", "Error Message", MessageBoxButtons.OK, MessageBoxIcon.Error); 
     } 

    } 
+0

проверить, если UserRights устанавливается пользователем button1.Enabled = ложь; – 2013-03-20 07:50:00

ответ

1

Сохранить имя пользователя Войти в сессии или любой container.Get, что имя пользователя в другой форме и применить условие, если это нормально, то использовать

buttonname.visible = true 
else 
buttonname.visible = false. 

если вы будете используйте видимое свойство, а затем поместите свою кнопку в видимом = ложном режиме изначально в html-коде.

Или вы можете использовать

buttonname.enable = true 
else 
buttonname.enable = false 

я думаю, что это поможет вам.

1

Вы можете передать истину или ложь основной форме. Или вы создаете класс для пользователя, который содержит usermode (admin или user-enum) и имя пользователя и т. Д.

Конструктор вашей MainForm принимает пользовательский объект в качестве параметра и в конструкторе после InitializeComponent() вы можете сделать что-то вроде:

public Mainform(User user) 
{ 
    InitializeComponent(); 
    if(user.UserType == UserType.User) 
    { 
     // Make your buttons invisible 
     buttonOnlyForAdmins.Visible = false; 
    } 
} 

Вместо установки кнопок невидимы вы также можете сделать " admin-buttons "невидимы по умолчанию и только устанавливают их видимыми, если пользователь является администратором.

Пользователь может быть классом, как:

public class User 
{ 
    public string Username{get;set;} 
    public UserType UserType{get;set} 
} 
+0

UserRights - это столбец в базе данных, а его значения - 'admin' или' user'. и что такое «Пользователь» в общедоступной Mainform (Пользователь пользователя) – bhert

Смежные вопросы