苏州大学本科生毕业设计(论文)
5.1.10 用户权限设置界面
说明:用户权限设置界面可以对系统登录的用户进行权限设置,限制他们可以查看的界面,从而对一些信息进行保密。
5.2 系统部分代码
5.2.1 判断用户是否可以登录系统
private void 登录系统Button_Click(object sender, EventArgs e) {
//从app.config文件中读取数据库连接字符串信息
StringMyConnectionString = global::MyTruck.Properties.Settings.Default.DBTruckConnectionString;
string MySQL = \操作用户 Where 用户名称=@用户名称 AND 用户密码=@用户密码\OleDbConnection MyConnection = new OleDbConnection(MyConnectionString); //创建一个OleDbConnection对象 MyConnection.Open();
OleDbCommand MyCommand = new OleDbCommand(MySQL, MyConnection);//利用现有连接创建一个OleDbCommand MyCommand.Parameters.Clear(); //清除参数
OleDbParameter MyNameParameter = new OleDbParameter(); //建立一个参数
MyNameParameter.ParameterName = \用户名称\ MyNameParameter.Value = this.用户名称comboBox.Text; //把用户名称comboBox.Text 的值赋给MyNameParameter
MyCommand.Parameters.Add(MyNameParameter); //为MyCommand建立参数 OleDbParameter MySqlPWParameter = new OleDbParameter(); MySqlPWParameter.ParameterName = \用户密码\string MyHashName = \
string MyPassword = this.用户密码TextBox.Text; //创建一个哈希算法
27
苏州大学本科生毕业设计(论文)
HashAlgorithm MyHashAlgorithm = HashAlgorithm.Create(MyHashName); //转换密码字符串为一个字节数组
byte[] MyPasswordData = Encoding.Default.GetBytes(MyPassword); //生成密码字符串的哈希码
byte[] MyHash = MyHashAlgorithm.ComputeHash(MyPasswordData); //显示密码对应的哈希码
string MyPW = BitConverter.ToString(MyHash); MySqlPWParameter.Value = MyPW;
MyCommand.Parameters.Add(MySqlPWParameter); int MyCount = (int)MyCommand.ExecuteScalar(); if (MyCount == 1) {
this.Close(); } else {
this.MyTryCount += 1; if (this.MyTryCount != 3) {
int MyDoCount = 3 - this.MyTryCount;
MessageBox.Show(\用户密码或用户名称有错,还有\+ MyDoCount + \次机会!\\信息提示\MessageBoxButtons.OK, MessageBoxIcon.Information); this.用户密码TextBox.Text = \ this.用户名称comboBox.Text = \ } else {
退出系统Button_Click(null, null); } }
if (MyConnection.State == ConnectionState.Open) {
MyConnection.Close(); } }
判断用户是否登录系统时,先根据用户输入的用户名在数据库中查找,在找到用户名一致的记录后,再判断密码是否一致。判断密码时,先将输入的密码转换为哈希码,再进行比较,这样做的目的是提高数据的安全性。同时在登录系统时,用户最多只能输入三次,三次失败后,系统将自动退出。 5.2.2 根据用户操作权限配置系统菜单
public void SetUserOperateMenu() {
28
苏州大学本科生毕业设计(论文)
//从app.config文件中读取数据库连接字符串信息
String MyConnectionString = global::MyTruck.Properties.Settings.Default.DBTruckConnectionString; string MySQL = \ * From 操作用户 Where 用户名称='\
OleDbConnection MyConnection = new OleDbConnection(MyConnectionString); //创建一个OleDbConnection对象 MyConnection.Open();
DataTable MyTable = new DataTable(); //创建一个DataTable
OleDbDataAdapter MyAdapter = new OleDbDataAdapter(MySQL, MyConnection); // 创建一个OleDbDataAdapter实例 MyAdapter.Fill(MyTable); //将数据从数据源加载到MyTable if ((int)MyTable.Rows[0][\基本管理之公司员工管理\ {
this.公司员工管理ToolStripMenuItem.Visible = false; //让公司员工管理ToolStripMenuItem不可见 this.公司员工管理ToolStripSeparator.Visible = false; //让公司员工管理ToolStripSeparator不可见 this.公司员工管理ToolStripButton.Visible = false; //让公司员工管理ToolStripButton不可见 }
if ((int)MyTable.Rows[0][\基本管理之员工考勤管理\{
this.员工考勤表ToolStripMenuItem.Visible = false; this.公司员工管理ToolStripSeparator.Visible = false; this.员工考勤表ToolStripButton.Visible = false; }
if ((int)MyTable.Rows[0][\基本管理之员工奖罚管理\{
this.奖惩管理ToolStripMenuItem.Visible = false; this.toolStripSeparator2.Visible = false;
this.员工奖惩管理ToolStripButton.Visible = false; }
if ((int)MyTable.Rows[0][\车辆管理之车辆费用管理\{
this.车辆费用管理ToolStripMenuItem.Visible = false; this.车辆费用管理ToolStripButton.Visible = false; }
if ((int)MyTable.Rows[0][\查询管理之查询车辆费用\{
this.查询车辆费用ToolStripMenuItem.Visible = false; this.查询车辆费用ToolStripSeparator.Visible = false; this.查询车辆费用ToolStripButton.Visible = false; }
if ((int)MyTable.Rows[0][\查询管理之查询公司员工\{
this.查询公司员工ToolStripMenuItem.Visible = false; this.查询车辆费用ToolStripSeparator.Visible = false; this.查询公司员工ToolStripButton.Visible = false; }
if ((int)MyTable.Rows[0][\查询管理之查询工作信息\{
this.查询工作信息ToolStripMenuItem.Visible = false;
29
苏州大学本科生毕业设计(论文)
this.查询出车费用ToolStripSeparator.Visible = false; this.查询工作信息ToolStripButton.Visible = false; }
if ((int)MyTable.Rows[0][\收费站窗口管理之工作人员管理\{
this.工作人员管理ToolStripMenuItem.Visible = false; this.订单信息管理ToolStripSeparator.Visible = false; this.工作日管理ToolStripButton.Visible = false; }
if ((int)MyTable.Rows[0][\收费站窗口管理之信息管理\{
this.窗口信息管理ToolStripMenuItem.Visible = false; this.窗口信息管理ToolStripButton.Visible = false; }
if ((int)MyTable.Rows[0][\系统管理之分配用户权限\{
this.分配用户权限ToolStripMenuItem.Visible = false; this.分配用户权限ToolStripSeparator.Visible = false; this.用户权限管理ToolStripButton.Visible = false; }
if (MyConnection.State == ConnectionState.Open) {
MyConnection.Close(); } }
根据操作用户表中用户权限分配的数据,从而配置用户操作的系统菜单。 5.2.3 根据员工编号自动填充员工姓名
private void 员工编号comboBox_SelectedIndexChanged(object sender, EventArgs e) {
this.员工姓名textBox.Clear(); //将员工姓名textBox.里的值清除掉
System.Data.DataTable ItemTable = new System.Data.DataTable(); //创建一个DataTable实例ItemTable
string MySQL = \员工姓名 FROM [员工信息] WHERE ([员工编号]='\员工编号comboBox.Text + \String MyConnectionString = global::MyTruck.Properties.Settings.Default.DBTruckConnectionString; //从app.config文件中读取数据库连接字符串信息
OleDbConnection MyConnection = new OleDbConnection(MyConnectionString); // 创建一个OleDbConnection实例 MyConnection.Open();
OleDbDataAdapter MyAdatper = new OleDbDataAdapter(MySQL, MyConnection); // 创建一个OleDbDataAdapter实例 MyAdatper.Fill(ItemTable); //将数据从数据源加载到ItemTable foreach (DataRow MyRow in ItemTable.Rows) {
this.员工姓名textBox.Text = MyRow[\员工姓名\ //将MyRow[\员工姓名\的值赋给员工姓名textBox }
if (MyConnection.State == ConnectionState.Open) {
30
苏州大学本科生毕业设计(论文)
MyConnection.Close(); }
}
当用户选择员工编号时,系统会自动根据员工编号来选择相应的员工姓名,并写入到员工姓名textbox中。 5.2.4 处理PC发送的数据
private void axMSComm1_OnComm(object sender, EventArgs e) {
temp = (byte[])(axMSComm1.Input); int i = 0; int j; int count=0;
string s = Convert.ToString(temp[0], 2); //将一个整数转换为二进制字符串 int k = s.Length; //将字符串转换为8位 for (; i < 8 - k; i++) {
s = s.Insert(0, \}
char[] bs = s.ToCharArray(); //将字符串转换为字符数组 for (j = 0; j< 8; j ++) {
if (bs[j] == '1') count++; }
if (count < 9 && count > 5) {
label9.Text = \提示:当前高速公路车辆情况为: \ 请启动8个通道\}
else if (count < 6 && count > 2) {
label9.Text = \提示:当前高速公路车辆情况为: \ 请启动5个通道\} else {
label9.Text = \提示:当前高速公路车辆情况为: \ 请启动3个通道\} }
获得单片机发动的数据,将其转换为一个二进制字符串,然后再转换为一个字符数组,再根据字符数组中1的多少,而决定开启多少通道。
31
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库收费站智能管理系统(7)在线全文阅读。
相关推荐: