版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的
图99A-35 操作员管理窗口设计
增加操作员或者重置密码,密码都设置为默认的“123456”,操作员可以登录系统后再修改自己的密码。
全部代码如下:
OleDbConnection connection;
public static void ShowForm()
{
FormAdmin frm = new FormAdmin();
frm.ShowDialog();
}
private void FormAdmin_Load(object sender, EventArgs e)
{
connection = new OleDbConnection(classMod.databaseConnString);
//打开数据连接
connection.Open();
fillLv();
}
//填充数据选项,主要是 lvUser
private void fillLv()
{
lvUser.Items.Clear();
//新建OleDbCommand对象实例
OleDbCommand command = new OleDbCommand();
//=========填充用户列表==================
//要执行的SQL查询
command.CommandText = "select ID,姓名,是否停用 from 操作员 where id<>0";
//设置OleDbCommand的数据连接为OleDbConnection
command.Connection = connection;
//声明OleDbDataReader对象
OleDbDataReader odReader;
//通过OleDbCommand的ExecuteReader方法获得OleDbDataReader对象实例。
odReader = command.ExecuteReader();
//如果OleDbDataReader中包含数据
if (odReader.HasRows)
{
//循环读取每一行数据,直到Read方法返回False
while (odReader.Read())
{
ListViewItem lvi = new ListViewItem(odReader.GetValue(0).ToString());
lvi.SubItems.Add(odReader.GetValue(1).ToString());
lvi.SubItems.Add(odReader.GetValue(2).ToString());
lvUser.Items.Add(lvi);
}
}
odReader.Close();
//关闭数据读取器
odReader.Close();
}
//增加操作员
private void btnAdd_Click(object sender, EventArgs e)
{
string newUser = InputBox.ShowDialog("请输入操作员姓名:\r\n(新建操作员默认密码为:123456)", "增加操作员");
if (newUser.Trim() == "")
{
MessageBox.Show("取消操作");
return;
}
//关于加密,请参看教程第11章
//这里使用简单的md5加密
string pass = "123456";
string passMd5 = ClassMd5.toMD5(pass);
OleDbCommand command = new OleDbCommand();
command.CommandText = "select top 1 ID from 操作员 order by ID desc";
command.Connection = connection;
OleDbDataReader odReader;
int userid;
odReader = command.ExecuteReader(CommandBehavior.SingleResult);
odReader.Read();
userid = (int)odReader.GetValue(0) + 1;
odReader.Close();
command.CommandText = "insert into 操作员(ID,姓名,密码,是否停用) values(" + userid + ",'" + newUser + "','" + passMd5 + "','否')";
command.ExecuteNonQuery();
//刷新lvUser中的显示
fillLv();
}
//修改操作者的姓名
private void btnEdit_Click(object sender, EventArgs e)
{
if (lvUser.SelectedItems.Count < 1)
{
MessageBox.Show("请先选择需要修改的操作员");
return;
}
int UserID = int.Parse(lvUser.SelectedItems[0].Text);
string userNameOld = lvUser.SelectedItems[0].SubItems[1].Text;
string userNameNew;
userNameNew = InputBox.ShowDialog("请输入操作员姓名:", "修改操作员姓名");
if (userNameNew.Trim() == "")
{
MessageBox.Show("取消操作");
return;
}
if (MessageBox.Show("确实要将操作员姓名从 " + userNameOld + " 替换为 " + userNameNew + " 吗?", "修改姓名", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.Cancel)
{
return;
}
//从数据库中修改
//新建OleDbCommand对象实例
OleDbCommand command = new OleDbCommand();
//设置OleDbCommand的数据连接为OleDbConnection
command.Connection = connection;
command.CommandText = "update 操作员 set 姓名='" + userNameNew + "' where ID=" + UserID;
command.ExecuteNonQuery();
//刷新lvUser中的显示
fillLv();
}
//启用或停用操作者
//如果直接删除,可能会导致已经保存的数据出现问题
private void btnUnable_Click(object sender, EventArgs e)
{
if (lvUser.SelectedItems.Count < 1)
{
MessageBox.Show("请先选择需要修改的操作员");
return;
}
int UserID = int.Parse(lvUser.SelectedItems[0].Text);
string userNameOld = lvUser.SelectedItems[0].SubItems[1].Text;
string isUseOld = lvUser.SelectedItems[0].SubItems[2].Text;
string isUseNew = isUseOld == "否" ? "是" : "否";
string operation = isUseOld == "否" ? "停用" : "启用";
if (MessageBox.Show("确实要" + operation + "操作员 " + userNameOld + " 吗?", operation + "操作员", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.Cancel)
return;
OleDbCommand command = new OleDbCommand();
command.Connection = connection;
command.CommandText = "update 操作员 set 是否停用='" + isUseNew + "' where ID=" + UserID;
command.ExecuteNonQuery();
//刷新lvUser中的显示
fillLv();
}
//重置密码
private void btnPass_Click(object sender, EventArgs e)
{
if (lvUser.SelectedItems.Count < 1)
{
MessageBox.Show("请先选择需要修改的操作员");
return;
}
int UserID = int.Parse(lvUser.SelectedItems[0].Text);
string userNameOld = lvUser.SelectedItems[0].SubItems[1].Text;
if (MessageBox.Show("确实要重置操作员 " + userNameOld + " 的密码吗?\r\n(重置后的密码为:123456)", "重置密码", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.Cancel)
return;
string passMd5 = ClassMd5.toMD5("123456");
OleDbCommand command = new OleDbCommand();
command.Connection = connection;
command.CommandText = "update 操作员 set 密码='" + passMd5 + "' where ID=" + UserID;
command.ExecuteNonQuery();
}
private void btnClose_Click(object sender, EventArgs e)
{
Close();
}
private void FormAdmin_FormClosing(object sender, FormClosingEventArgs e)
{
connection.Close();
}
学习更多vb.net知识,请参看vb.net 教程 目录
学习更多C#知识,请参看C#教程 目录