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#实现医院药品信息管理系统 毕业论文论文+源程序+数据库+使用说明

博纳药品包装携手高亚科技搭建一体化采购管理平台

药品的GSP主要是指啥?药品的国药准字和药品怎么分类?

矿产行业集中采购管理系统:强化供应链采购把控水平,助推矿企数字化建设

矿产行业集中采购管理系统:强化供应链采购把控水平,助推矿企数字化建设

矿产行业集中采购管理系统:强化供应链采购把控水平,助推矿企数字化建设