我在数据库中有一个表,其中包含UserName和UserRights列。 UserRights是admin
或user
现在,如果用于登录login form
的UserName只是用户,我想要禁用其他表单中的某些按钮。我该怎么做?
我有以下代码:
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 :(得分:1)
在会话或任何容器中保存登录用户名。以不同的形式获取该用户名,如果可以,则应用条件然后使用
buttonname.visible = true
else
buttonname.visible = false.
如果你将使用visible属性,那么最初在html代码中将你的按钮置于visible = false模式。
或者您可以使用
buttonname.enable = true
else
buttonname.enable = false
我认为这会对你有所帮助。
答案 1 :(得分:1)
您可以将true或false传递给main-form。或者您为用户创建一个类,其中包含usermode(admin或user-enum)和用户名等。
mainform的构造函数接受user-object作为参数,在InitializeComponent()之后的构造函数中,您可以执行以下操作:
public Mainform(User user)
{
InitializeComponent();
if(user.UserType == UserType.User)
{
// Make your buttons invisible
buttonOnlyForAdmins.Visible = false;
}
}
除了将按钮设置为不可见外,您还可以使“管理按钮”在默认情况下不可见,并且只有在用户为管理员时才将其设置为可见。
用户可以是以下类:
public class User
{
public string Username{get;set;}
public UserType UserType{get;set}
}