77范文网 - 专业文章范例文档资料分享平台

收费站智能管理系统(7)

来源:网络收集 时间:2018-11-30 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

苏州大学本科生毕业设计(论文)

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)在线全文阅读。

收费站智能管理系统(7).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/327176.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: