1

我的应用程序有一个自定义登录表单,它从数据库(MS Access)获取用户名和密码。在用户选择他们的用户名并输入密码并点击登录按钮后,将出现新表单。这是我使用的登录按钮点击事件:

OleDbCommand cmde = new OleDbCommand("SELECT * FROM Account WHERE username='"+ username.Text +"' and password='"+ passtxt.Text +"'", GetConnection());
OleDbDataReader reader = cmde.ExecuteReader();
if (reader.HasRows == true)
{
    MainForm frm = new MainForm(this);
    frm.Show();
    this.Hide();
}
else
{
    MessageBox.Show("Wrong Password!!!", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Error);
}

我的问题是如何获取已在新表单上登录的用户名/级别?所以我可以在我的表单上为非管理员用户隐藏一些选项。

4

4 回答 4

2

您可以在用户表中添加数据库中的字段以确定级别,然后测试此字段作为测试用户名和密码

此链接将帮助您 解决任何问题?

于 2013-03-12T12:08:54.067 回答
1

本质上,@Maath Programmer 有解决方案。您可以有另一个字段,比如说“isAdmin”,然后您将检查表单中的该值。

所以用户登录。

加载用户数据。例如。存储用户数据是一些变量,比如说一个用户类。

进行适当的检查。例如。是用户管理员(这只是 if 语句)

应用检查。例如。隐藏一些元素。

继续...

于 2013-03-12T12:13:40.837 回答
0

每当您使用 show 或 show dialog 方法调用新表单而不是使用 Constructor 传递您的用户 ID 值时



    Form2 objForm2=new Form2(String userid)
objForm2.ShowDialog();


并在 Form2 中使用字符串参数创建新的构造函数。

您可以使用您的用户 ID 根据您的要求在 form2 中执行任何操作

于 2013-03-12T12:13:53.920 回答
0

只需在数据库中创建一个用户类型列,将用户级别指定为管理员或用户。例如如果 user = "admin" 那么 ad.show ac.show bd.show else if user = "user" 那么 ax.show

于 2020-06-18T09:38:39.520 回答