我是Visual Studio 2010的新手。我正在创建一个登录表单,在登录表单中有一个组合框和一个文本框。组合框中的项目是员工的职位列表。每当用户单击登录按钮时,登录按钮中应该有一个if语句,以便在员工的特定位置打开表单。请帮忙。
这是截图:
这是代码:
private void loginbutton_Click(object sender, EventArgs e)
{
string MyConString = "SERVER=localhost;" + "DATABASE=timekeeping;" + "UID=root;" + "PASSWORD=admin;";
MySqlConnection connection = new MySqlConnection(MyConString);
MySqlCommand command = connection.CreateCommand();
MySqlDataReader Reader;
command.CommandText = "select username, password from users";
connection.Open();
Reader = command.ExecuteReader();
while (Reader.Read())
{
if (username_login.Text == Reader[0].ToString() && password_login.Text == Reader[1].ToString().Trim())
{
username = Reader[0].ToString();
password = Reader[1].ToString();
}
}
if (username_login.Text == username && password_login.Text == password.Trim())
{
this.Hide();
Home form = new Home();
//form.userSession(lname, fname);
form.Show();
}
else MessageBox.Show("Invalid User", "Login Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
connection.Close();
}
我还没有包括组合框,因为我不知道该放什么。
答案 0 :(得分:4)
我认为你需要重新考虑你的设计:
如果将用户的角色(位置)存储在/ a数据库中会更好。
如果有人正确识别自己加载该用户的角色,然后打开正确的表单/应用程序。不要让用户选择他的角色。
看看the Membership and Role providers它们不仅适用于ASP.NET,您也可以在Winforms中使用它们:
优秀的教程:
答案 1 :(得分:0)
如下所示:
Form mainForm;
switch (comboBox1.SelectedText)
{
case "Individual employees":
mainForm = new EmployeesForm();
break;
case "HR":
mainForm = new HRForm();
break;
case "Manager":
mainForm = new ManagerForm();
break;
case "Supervisor":
mainForm = new SupervisorForm();
break;
default:
mainForm = new DefaultForm();
break;
}
mainForm.Show();
这使用一个名为switch的条件语句,它通过将控制权传递给其正文中的一个case语句来处理多个选择。