2013-03-20 64 views
0

我有一個數據庫中有一列用戶名和UserRights的表。 UserRights是adminuser 現在,如果用戶名登錄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 = FALSE; – 2013-03-20 07:50:00

回答

1

保存在會話中的登錄用戶名或任何container.Get該用戶名以不同的形式和應用的條件,如果是OK,然後,如果你會用

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

使用可見屬性,然後把你的按鈕放入可見= false模式,最初在html代碼中。

或者你可以使用

buttonname.enable = true 
else 
buttonname.enable = false 

我認爲這將幫助你。

1

您可以將true或false傳遞給主窗體。或者你爲包含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中的'User'(用戶用戶) – bhert 2013-03-20 07:56:17