C#开发药品集中采购系统[开发过程]
Posted F1gh4
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#开发药品集中采购系统[开发过程]相关的知识,希望对你有一定的参考价值。
~并没有看起来这么简单,
~
前言
是一个写了一段时间的winform小程序作业:
记录一下开发过程,单纯记录下来,希望自己的努力不要随风飘散,挺有意思的
感谢组员的合作和帮助
~
开发工具
开发工具:vs2019 ,navicat(数据库管理工具)
依赖项:mysql
开发语言:C#
~
开发要求
开发要求:
有登录注册的GUI用户界面,
是药品采购管理平台,
商家上传药物,药物有序号和生产商等信息,
买家可以购买药品,并且要下单,上传药品的用户可以同意,并受理,
可以看到自己买的药品
准备
1.准备数据库
本来我的服务器上有mysql数据库的,结果被自己配坏了,建议别随便碰my.cnf,然后去腾讯云买了一个云数据库:
用navicat连接好数据库,以便操作:
连接好,已经创建好了表:
2.用C#写好前端登录和注册界面
就是登陆注册最基本的框体,很好想,
现在要求能完成注册,和注册,
这样想:
~
(1)先去登陆,点击按钮,就去数据库里查询是否有该用户名,而且并且其密码,要和存入的一样,一般情况下,要将密码等md5加密,然后去看和数据库的md5字符串是否一样
~
(2)去注册,则用"select"语句去检测,数据库中有无该用户名,没有的话则直接"insert"插入,然后就能登陆了
C#操作mysql数据库的方式:
去下载这两个组件,然后导入,可以进行mysql操作
定义连接数据库的字符串,
MySqlConnection conn = new MySqlConnection(serverinfo); //建立连接
try
conn.Open(); //打开
//建立sql语句
string sql = "select count(*) from userINFO.loginINFO where name = '"
+ username + "' and passwd = '"
+ passwd + "'";
MySqlCommand com = new MySqlCommand(sql, conn);
使用类:MySqlConnection类来实现其和数据库的连接,
然后执行sql语句,判断是否有一样的登录信息,
~
接下来,判断执行的语句是否有回显,即是否存在,存在就登录成功:
com.好返回其查询的第一行第一列,即判断回显:
int resp = Convert.ToInt32(com.ExecuteScalar()); //判断是否存在
if (resp > 0)
label4.Text = "";
MessageBox.Show("登录成功!");
this.Hide();
f2.Show();
conn.Close();//关闭连接
注册:
注册的话,先用sql语句判断数据库中是否已存在注册的用户名等,
如果有回显,则报错:
try
conn.Open(); //打开
//建立sql语句
string sql_1 = "select count(*) from userINFO.loginINFO where name = '"+ username+"'";
string sql_2 = "select count(*) from userINFO.loginINFO where name = '" + nickname + "'";
MySqlCommand com_1 = new MySqlCommand(sql_1, conn);
MySqlCommand com_2 = new MySqlCommand(sql_2, conn);
int resp_1 = Convert.ToInt32(com_1.ExecuteScalar()); //分别判断是否存存在
int resp_2 = Convert.ToInt32(com_2.ExecuteScalar());
if (resp_1 > 0)
MessageBox.Show("用户名已存在!请重新输入!");
label5.Text = "";
else
if(resp_2 > 0)
MessageBox.Show("昵称已存在,请重新输入");
label5.Text = "";
else
String sql_insert = "insert into userINFO.loginINFO(name,passwd,nickname) VALUES('" + username + "','" + passwd +"','"+nickname + "')";
MySqlCommand com_3 = new MySqlCommand(sql_insert, conn);
com_3.ExecuteNonQuery(); //执行
MySqlCommand com_4 = new MySqlCommand(sql_1, conn); //检验数据库里是否加入了注册数据
com_4.ExecuteNonQuery(); //执行
int resp_4 = Convert.ToInt32(com_4.ExecuteScalar());
com_3 = null;
if (resp_4 > 0)
MessageBox.Show("恭喜! " + nickname + ",注册成功,快去登陆吧!");
label5.Text = "";
Form1 f1 = new Form1();
this.Hide();
f1.Show();
else
MessageBox.Show("注册失败!请重试!");
label5.Text = "";
conn.Close();//最后关闭连接
catch (Exception ex)
MessageBox.Show("出现了未知的错误,请联系管理员.");
label5.Text = "";
没有的话,就往数据库中插入,注册的用户名和密码:
就能登陆了
3.菜单界面
4.药品入库
点击按钮,则把数据存入数据库:
存入数据的sql语句如下:
可以用一个单向链表做一个临时缓存,也可以直接存:
可以点击按钮把数据库信息呈现在datagridview上面:
如何读取到datagridview:
读取并更改表头信息:
try
MySqlConnection conn = new MySqlConnection(serverinfo); //建立连接
conn.Open();
string sql = "select * from userINFO.medicineINFO;";
MySqlDataAdapter sda = new MySqlDataAdapter(sql, conn);//读取表数据
DataTable dt = new DataTable();//dt是一个表类型。
sda.Fill(dt);//把sda读取的数据填到dt里
dataGridView1.DataSource = dt;//把dt的内容绑定到Gridview1里显示。
dataGridView1.Columns[0].HeaderCell.Value = "药品名";
dataGridView1.Columns[1].HeaderCell.Value = "序号";
dataGridView1.Columns[2].HeaderCell.Value = "生产商";
dataGridView1.Columns[3].HeaderCell.Value = "现存量";
dataGridView1.Columns[4].HeaderCell.Value = "总库存";
dataGridView1.Columns[5].HeaderCell.Value = "单价";
dataGridView1.Columns[6].HeaderCell.Value = "上传商家";
catch (Exception ex)
MessageBox.Show("显示出错,请联系管理员.");
将数据插入数据库:
MySqlConnection conn = new MySqlConnection(serverinfo); //建立连接
try
conn.Open(); //打开
//建立sql语句
string sql = "insert into userINFO.medicineINFO(name,num,rootname,stock,total,price,rootuser) VALUES('" + name + "','" + num + "','" + rootname + "','" +stock + "','" +total+ "','"+price+ "','"+rootuser+"')";
MySqlCommand com = new MySqlCommand(sql, conn);
com.ExecuteNonQuery(); //执行
conn.Close();
catch(Exception ex)
MessageBox.Show("上传出错,请稍候重试");
5.购买药品
最上面那个是datagridview同样的原理可以读取数据库数据:
该构件有一个点击事件
将其写成点击则创建购买订单:
双击之后提取出信息,存入订单表:
点击确认购买,可以存入订单表,我的订单功能,可以查询是否有订单,
在我的订单中,看到了别人的请求,双击之后将其存入已完成订单表,双方都能看见
表单间的值传递,可以使其随时得到用户名信息,即为多个窗口传递信息;
可以记载一个传递方式,当然用session也是可以的。
功能比较简单,
期待能有更有意思的东西.
以上是关于C#开发药品集中采购系统[开发过程]的主要内容,如果未能解决你的问题,请参考以下文章
大学毕业设计 C#实现医院药品信息管理系统 毕业论文论文+源程序+数据库+使用说明
矿产行业集中采购管理系统:强化供应链采购把控水平,助推矿企数字化建设