C#防疫物资预约管理系统(数据库设计+C#代码,附源码)

使用C#进行防疫物资管理系统设计,包括数据库设计,连接以及登录、注册、增删改查操作设计,完成寒假C#大作业,进行一下分享以及我的理解,希望对大家有帮助。下图为此系统不同人员下的不同操作权限。

一、数据库设计(SQL Server)

    • 需求分析

对于疫情情况下的物资分配进行设计,结合实现某些功能,并进行可行性测试。

    • 结构设计

    • 数据表信息

数据表

属性名

admin表

work_id、ad_name、pwd、phone

users表

user_id、user_name、ID、pwd、register_date

deliver表

deliver_id、deliver_name、phone、pwd

mask表

mask_type、m_name、remain_num、price

info表

order_id、user_id、user_name、allocate_num、phone、address、status、re_date

reserve表

user_id、re_date、mask_type、ID、r_num、ex_date、phone、address

allocate表

work_id、order_id、allocate_time、deliver_id

take表

deliver_id、order_id、take_date、finish_date

Admin表:

Users表:

Delivers表:

Item表:

Info表:

Reserve表:

Allocate表:

Take表:

2.2、数据需求

包括管理员账号数据信息、用户数据信息、快递员数据信息、防疫物资信息、订单信息、预约信息、分配信息以及快递信息。

  1. 管理员信息(Admin)

USE MySchool
CREATE table Admin(work_id varchar(32) primary key not null,
                   pwd varchar(32) not null,
                   ad_name varchar(32),
                   phone varchar(32));
  1. 用户数据信息(users)

CREATE table users(work_id varchar(32) primary key not null,
                   pwd varchar(32) not null,
                   ad_name varchar(32),
                   phone varchar(32)
                    Provincial_certificate_number varchar);
  1. 快递员数据信息(deliver)

CREATE table delivers(deliver_id varchar(32) primary key not null, 
                    pwd varchar(32) not null, 
                    deliver_name varchar(32) not null, 
                    phone varchar(32));
  1. 防疫物资信息(item)

CREATE table reserve(user_id varchar(32) not null, 
                    re_date datetime not null,
                    foreign key (user_id) references users(work_id), 
                    primary key(user_id,re_date), 
                    ID varchar(32) not null, 
                    r_num int not null,
                    ex_date date not null,
                    phone varchar(32) not null, 
                    address varchar(32) not null);
  1. 订单信息(info)、预约信息(reserve)、分配信息(allocate)、快递信息(take)(通过下图进行相关性设计)

数据库设计时,没有保存SQL语言部分。(下图为数据库表的关联信息)

二、C#源码介绍

    • 界面设计(部分展示)

界面方面可以根据自己的想法设计,这里展示一部分具体以源代码中显示的为主,也可以自己进行界面美化。

//技巧,可以通过以下代码进行界面跳转,可以进行多界面设计;以打开form1为例

 Form1 form1 = new Form1();
              form1.Show();

1.1、登陆界面

1.2、信息管理界面

1.3、用户界面

    • 操作

  1. 连接数据库(需要此窗体创建连接对象)

string strMyConnectoion = "Data Source="服务器名称";Initial Catalog=Myschool;Integrated Security=True";
        SqlConnection myConnection;//数据库连接对象
  1. 查询操作(以Admin为例)

if (comboBox1.Text == "Admin")
            {
                try
                {
                    //打开数据库
                    myConnection.Open();
                    //实例化命令对象
                    SqlCommand myCommand = new SqlCommand();
                    //把要操作的数据库传过来
                    myCommand.Connection = myConnection;
                    //操作类型为文本类型
                    myCommand.CommandType = CommandType.Text;
                    //命令格式,代表查询全部
                    myCommand.CommandText = @"select * from Admin";
                    //创建DataAdapter对象
                    SqlDataAdapter sda = new SqlDataAdapter(myCommand);
                    //创建DataSet对象
                    DataSet ds = new DataSet();
                    //将表填充到DataSet数据集中
                    sda.Fill(ds, "Admin");
                    //将表显示到控件上
                    dataGridView1.DataSource = ds.Tables["Admin"].DefaultView;
                    //关闭数据库
                    myConnection.Close();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.ToString());
                    myConnection.Close();
                }
  1. 登录操作(以Admin为例)

if (comboBox1.Text == "管理员")
                {
                    try
                    { myConnection.Open(); }
                    catch
                    {
                        MessageBox.Show("数据库连接失败!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                        return;
                    }
                    if (textBox1.Text == "")
                    {
                        MessageBox.Show("管理员不能为空", "管理员登入", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);

                    }
                    else if (textBox2.Text == "")
                    {
                        MessageBox.Show("密码不能为空", "管理员登入", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                    }
                    else
                    {
                        string user_Id = textBox1.Text;
                        string password = textBox2.Text;
                        string sql = "SELECT COUNT(*) FROM Admin WHERE work_id='" + user_Id + "'AND pwd='" + password + "';";
                        SqlCommand cmd = new SqlCommand(sql, myConnection);//查询
                        if (Convert.ToInt32(cmd.ExecuteScalar()) == 1) // 转换 查找 找到为1 
                        {
                            //进入管理员界面
                          
                            MessageBox.Show("登入成功", "欢迎使用", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                            Form2 form2 = new Form2(); 
                            form2.Show();
                            this.Hide();
                        }
                        else //登入成功则直接进入信息界面
                        {
                            MessageBox.Show("账号或者密码错误,请重新输入", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                        }
                        myConnection.Close();
                    }
                    return;
                }
  1. 注册设置(以Admin为例)

if (comboBox1.Text == "管理员")
            {
                string sql = "insert into Admin(work_id,pwd,ad_name,phone,regtime)values('{0}','{1}','{2}','{3}','{4}')";
                sql = string.Format(sql, textBox1.Text.Trim(), textBox2.Text.Trim(), textBox3.Text.Trim(), textBox4.Text.Trim(), dateTimePicker1.Text.Trim());
                SqlCommand cmd = new SqlCommand(sql, myConnection);
                try
                {
                    myConnection.Open();
                    int result = cmd.ExecuteNonQuery();
                    if (result > 0)
                    {
                        MessageBox.Show("注册成功!", "系统信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }


                }
                catch (Exception ex)
                {
                    MessageBox.Show("连接数据库失败,具体为:" + ex.Message, "系统信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                finally
                {
                    myConnection.Close();
                }
            }

5.增加操作(以Admin为例)

if (comboBox1.Text == "Admin")
            {
                string sql = "insert into Admin(work_id,pwd,ad_name,phone,regtime)values('{0}','{1}','{2}','{3}','{4}')";
                sql = string.Format(sql, textBox1.Text.Trim(), textBox4.Text.Trim(), textBox2.Text.Trim(), textBox3.Text.Trim(), dateTimePicker1.Text.Trim());
                SqlCommand cmd = new SqlCommand(sql, myConnection);
                try
                {
                    myConnection.Open();
                    int result = cmd.ExecuteNonQuery();
                    if (result > 0)
                    {
                        MessageBox.Show("插入数据成功!", "系统信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }


                }
                catch (Exception ex)
                {
                    MessageBox.Show("连接数据库失败,具体为:" + ex.Message, "系统信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                finally
                {
                    myConnection.Close();
                }
            }
  1. 删除操作(以users为例)

if (comboBox1.Text == "users")
            {
                //删除语法
                //delete from 表名 where 条件
                try
                {
                    //打开数据库
                    myConnection.Open();
                    //实例化命令对象
                    SqlCommand myCommand = new SqlCommand();
                    //把要操作的数据库传过来
                    myCommand.Connection = myConnection;
                    //操作类型为文本类型
                    myCommand.CommandType = CommandType.Text;
                    //命令格式,代表按姓名查询
                    myCommand.CommandText = @"delete from users where user_name =@user_name";

                    myCommand.Parameters.Add(new SqlParameter("@user_name", textBox13.Text));
                    //开始查询
                    int res = Convert.ToInt32(myCommand.ExecuteNonQuery());
                    //如果查询不到,报错
                    if (res == 0)
                    {
                        throw new Exception("查无此人");
                    }
                    MessageBox.Show("删除成功");

                    myConnection.Close();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.ToString());
                    myConnection.Close();
                }
            }
  1. 修改只是在dataGridView控件中修改其属性enable改为TRUE即可。

三、总结

有些细节以源码为主,并未在本文提出,也可以给我一些建议,由于只是为了这次大作业完成的任务并没有进行美化操作。

源码自取。

https://download.csdn.net/download/m0_64021704/87410134

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Asp.net物资流通管理系统码 本系统主要针对物流供应链中的库存管理环节,实现了: 1) 货物的入库、出库、调库、借出、借入、调拨、报损、盘点等多种操作流程。 2) 写入各种出入库凭证及凭证查询。 3) 统计仓库账目,以无纸化作业全面代替手工台帐。 4) 准确控制存储物料的数量,以保证稳定的物流,支持正常的生产,支持多仓库操作,货物的批量出入库、调库、盘点、货位管理等。 5) 有效地解决货物的积压、超储、过期、短缺、账目混乱等常见的弊病。 6) 实时的库存信息控制,保证了准时交付。 以下是论文目录: 第一章 绪论 1 1.1 系统的必要性分析 1 1.2 系统的可行性分析 2 1.2.1 技术可行性分析 2 1.2.2 实施的可行性分析 2 第二章 需求分析 4 2.1 红旗汽车修理厂概况 4 2.1.1 修理厂规模及简单介绍 4 2.1.2 修理厂物资流通概况及相关流程 4 2.2 红旗汽车修理厂物资流通分析 4 2.2.1 物资流通管理的重要性 4 2.2.2 物资流通的业务流程图及分析 4 2.3 红旗汽车修理厂物资流通管理的功能及流程分析图 5 2.3.1 物资流通管理的功能 5 2.3.2 物资流通管理业务分析 5 2.3.3 物资流通管理的流程分析图 6 第三章 系统分析 8 3.1 物资流通管理系统的功能模块 8 3.1.1 系统的基本数据子系统分析 8 3.2 系统的业务功能模块分析 9 第四章 系统设计 10 4.1 系统管理模块的设计 10 4.1.1 人员管理子模块: 10 4.1.2 系统通知管理子模块: 10 4.1.3 仓库基本信息管理子模块: 10 4.1.4 所有仓库数据维护及报表打印子模块: 10 4.2 仓库管理模块的设计 11 4.2.1 仓库管理员模块的设计 11 4.2.2 入库管理子模块的设计 11 4.2.3 出库管理子模块的设计。 11 第五章 系统界面设计 12 5.1 界面设计思想 12 5.2 详细界面设计 12 5.2.1 首页登陆界面设计 12 5.2.2 系统用户界面 13 5.2.3 报表界面设计 14 第六章 数据库设计 16 6.1 数据表结构 16 6.1.1 仓储人员表(UserList) 16 6.1.2 仓库表(KeepNum) 16 6.1.3 库存产品表(GoodList) 17 6.1.4 产品小类表(AllGood) 17 6.1.5 产品大类表(BigClass) 18 6.1.6 单据表(GoodPapers) 18 6.1.7 操作类型表(PaperType) 18 6.1.8 系统日志表(RecordList) 19 6.1.9 系统通知表(SystemTest) 19 6.2 各表之间的逻辑关系图 19 第七章 编码与实现 21 7.1 NET平台技术综述 21 7.1.1 MICROSOFT.NET技术及其应用概述 21 7.1.2 MICROSOFT.NET平台的构成 21 7.1.3 C#语言简介 22 7.2 数据库的连接与关闭连接 22 7.2.1 数据库连接与关闭连接的重要性 22 7.2.2 该系统数据库的连接与关闭 22 7.3 安全性问题 24 7.3.1 数据库安全问题 24 7.3.2 系统安全问题 24 7.4 类库的设计与实现 24 7.4.1 SqlDataBase类 25 7.4.2 CheckLogin类 25 7.4.3 Admin类 25 7.4.4 Goods类 25 7.4.5 Keeps类 25 7.4.6 Sums类 25 7.4.7 UserAction类 25 7.5 相关视图及存储过程 25 7.5.1 View_Dao(系统操作视图) 25 7.5.2 View_GoodMsg(库存产品视图) 26 7.5.3 View_Papes(操作单据视图) 26 7.5.4 View_Sum(库存统计视图) 26 7.5.5 InsertGood(入库存储过程) 26 7.6 代码规范 26 7.6.1 数据库中表名和字段名的规范 26 7.6.2 系统中文件目录命名规范 26 7.6.3 程序书写,缩进,注释规范 26 第八章 总 结 28 8.1 系统的总结 28 8.2 开发过程的总结 28 参考文献 29 致 谢 30  录 31 默认管理帐号密码51aspx DB_51aspx下为数据库加即可
包含文档,各种码 一、 课程设计目的和要求………………………………………………….…3 二、课程设计过程…………………………………………………………….4 数据库设计的基本步骤如下:……………………………………………….4 1.需求分析阶段……………………………………………………………..4 1.1 应用背景……………………………………………………………4 1.2系统需求分析……………………………………….........................5 1.3系统可行性分析。………………………………………………….6 1.4系统E-R图……………………………………………………........6 2.概要设计…………………………………………………........................7 2.1开发系统的目的…………………………………………………….7 2.2系统模块的划分…………………………………………………….7 2.2.1基础信息管理…………………………………………............7 2.2.2库存管理..……………………………………………………..7 2.2.3商品销售………………………………………………………8 2.2.4查询统计………………………………………………………8 2.2.5往来管理………………………………………………………8 2.2.6系统设置……..………………………………………………..8 2.3数据库实施………………………………………………………….8 2.3.1CreateDatabase创建数据库…………………………………...8 2.3.2 Create Table 创建表…………………………………………9 3.前端设计………………………………………………………………..18 3.1详细实现…………………………………………………………….18 3.2 数据库的连接与访问………………………………………………18 3.3用户登录模块设计………………………………………………….20 3.4系统首页设计……………………………………………………….23 3.5主要功能展示……………………………………………………….23 三、课程设计心得…………………………………………………………….26 参考文献:…………………………………………………………………….27

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值