上次博客介绍只是说了一下怎么实现登陆,这次要介绍一下具体的一些小东西
1. textbox控件
textbox控件需要限制输入字符长度(maxlength),密码需要用特殊符号显示(passwordchar)。
2.需要限制特殊字符的输入
可以自己写限制哪些字符能输入,哪些不能输入,也可以用正则表达式来写。
private string pattern = @"^[0-9]*$";//只能输入0-9之间的数字
private string param1 = null;
private void txtusername_TextChanged(object sender, EventArgs e)
{
Match m = Regex.Match(this.txtusername.Text, pattern);//匹配正则表达式
if (!m.Success)
{
this.txtusername.Text = param1;
//将光标定位到文本框最后
this.txtusername.SelectionStart = this.txtusername.Text.Length;
}
else
{
param1 = this.txtusername.Text;
}
}
3.判断登陆用户
登陆窗体
Entity.user user = new Entity.user();
user.UserName = txtusername.Text.Trim(); //查询输入的用户是否存在
user.PWD = txtpassword.Text;
userids = txtusername.Text.Trim();
Facade.Facade loginfacade = new Facade.Facade(); //实例化登陆外观将参数传递给外观层
DataTable flag = loginfacade.selectuser(user);
if (flag.Rows.Count!=0)
{
Entity.worklog user2 = new Entity.worklog(); //查询输入的用户是否是在worklog表中存在
user2.userID = login.userids;
user2.state1 = "正在值班";
Facade.lineFacade loginfacade2 = new Facade.lineFacade();
DataTable flag2 = loginfacade2.selectuser5(user2);
if (flag2.Rows.Count!=0)
{
MessageBox.Show("您输入的操作员正在值班,不用重复登陆!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
main main = new main();
main.Show();
}
else
{
MessageBox.Show("登陆成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);//登陆成功提示信息
this.Hide();
main form2 = new main();
form2.Show();
}
}
主窗体
Entity.user user = new Entity.user();
user.userID = login.userids; //查询登陆用户的级别,并给相应的权限
Facade.lineFacade loginfacade = new Facade.lineFacade();
DataTable flag = loginfacade.selectuser(user);
string userlevel = Convert.ToString(flag.Rows[0][2]); //获取级别
switch (userlevel)
{
case "操作员":
操作员ToolStripMenuItem.Enabled = true; //如果是操作员就保存到正在值班教师表
一般用户ToolStripMenuItem.Enabled = true;
Entity.worklog user1 = new Entity.worklog();
user1.userID = login.userids;
user1.logindate = DateTime.Now.ToString();
user1.computer = "公子电脑";
user1.state1 = "正在值班";
Facade.lineFacade loginfacade1 = new Facade.lineFacade();
DataTable flag1 = loginfacade1.selectuser1(user1);
break;
case "管理员":
操作员ToolStripMenuItem.Enabled = true;
一般用户ToolStripMenuItem.Enabled = true;
管理员ToolStripMenuItem.Enabled = true;
break;
case "一般用户":
一般用户ToolStripMenuItem.Enabled = true;
break;
}
为什么这样来判断呢?因为在登陆时可以判断是否有值班教师,而用户经过了登陆界面那必然是没有这个操作员在值班,就可以保存到正在值班教师表中。
4.userID
因为这个userID需要在很多表中使用,所以在登陆界面写一个全局变量进行传值。
public static string userids; //声明全局变量userids
student.userID=Form1.userids //其他窗体调用
这次就先介绍这些,希望这些能对你有帮助!