C# 综合示例 库存管理系统20 操作员管理(FormAdmin)

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的

图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#教程 目录

相关推荐
情缘晓梦.6 分钟前
C++ 内存管理
开发语言·jvm·c++
黄晓琪7 分钟前
Java AQS底层原理:面试深度解析(附实战避坑)
java·开发语言·面试
姓蔡小朋友20 分钟前
Java 定时器
java·开发语言
百锦再36 分钟前
python之路并不一马平川:带你踩坑Pandas
开发语言·python·pandas·pip·requests·tools·mircro
todoitbo36 分钟前
多模数据库技术解析:以KingbaseES MongoDB兼容版为例
数据库·mongodb·kingbasees·金仓数据库
灏瀚星空37 分钟前
基于 Python 与 GitHub,打造个人专属本地化思维导图工具全流程方案(上)
开发语言·人工智能·经验分享·笔记·python·个人开发·visual studio
是Dream呀37 分钟前
Python从0到100(一百):基于Transformer的时序数据建模与实现详解
开发语言·python·transformer
草莓熊Lotso39 分钟前
Python 入门超详细指南:环境搭建 + 核心优势 + 应用场景(零基础友好)
运维·开发语言·人工智能·python·深度学习·学习·pycharm
正在走向自律39 分钟前
ksycopg2实战:Python连接KingbaseES数据库的完整指南
数据库·python·国产数据库·kingbase·kingbasees·数据库平替用金仓·ksycopg2
*TQK*39 分钟前
Python中as 的作用
开发语言·python