超市管理系统

10 篇文章 0 订阅
8 篇文章 3 订阅

S1总复习(4)超市管理系统

Dbhelper 见我的文章中C#工具类

要求

要求

为某超市开发一个会员管理系统,要求使用 Visual Studio 2012 实现,SQL Server 2008 作为数据库。需要完成会员信息录入、浏览及删除功能。窗体界面如图-1 所示
在这里插入图片描述

数据库设计

数据库名称:SuperMark,2 个表的设置参见下表:
在这里插入图片描述

具体实现步骤

1、建立数据库并插入测试数据
1)数据库名称为 SuperMark。
2)建立数据库表 States、UsersInfo,注意数据类型、标识列、主键、外键、非空约束的 设置。
3)各表至少添加 3 条数据。
2、 在 Visual Studio 2012 中创建 Windows 窗体应用程序
3、设计超市会员管理系统的主窗体
1)设置窗体标题为“超市会员管理系统”,窗体不允许最大化,且启动时位于屏幕中央。
2)其中窗体中有 5 个 Label 控件、3 个 TextBox 控件、1 个 ComboBox 控件、1 个 GroupBox 控件、3 个 RadioButton 控件,2 个 Button 控件,1 个 DataGridView 控件。帐号和 密码对应的 TextBox 初始信息为空,GroupBox 控件的 3 个卡别单选按钮中金卡默认为 选中状态。
3)点击 DataGridView 中某一单元格可选中整行信息。
4)“状态”组合框的选项与数据库表 States 绑定,窗体运行后组合框中有一项默认被选中, 窗体中 DataGridView 控件显示数据库表中的全部会员信息。如图-2 所示。

在这里插入图片描述4、实现会员信息添加功能
1)密码框内容要求以掩码表示,账户积分框中内容为只读,卡别单选按钮选中后,积分框中 显示相应的初始积分值(金卡:500,铂金卡:2000,钻石卡:5000),当改变选中按钮 时积分框中的积分值能够随之改变。如图-3 所示。

在这里插入图片描述 2)单击“添加”按钮,先对输入会员信息的文本框做非空验证。如果会员信息不完整,将弹 出相应提示框“请填写完整的会员信息!”。所有信息填写正确后添加会员信息到数据库,添加成功 后弹出消息框,显示“添加成功!”,并且刷新 DataGridView ,显示最新会员信息。如果添加失 败,弹出消息框,显示“添加失败!”。

5、 实现会员信息删除功能
1)选中 DataGridView 中某条信息,点击鼠标右键,显示右键“删除”菜单,如图-4 所示。

在这里插入图片描述
2)点击“删除”菜单项,弹出提示“确定要删除该条信息吗?”,如图-5 所示。点击“是”, 从数据库表中删除选中会员信息。

在这里插入图片描述
6、单击“退出”按钮退出当前的应用程序。

数据库操作

主表

在这里插入图片描述在这里插入图片描述

从表

在这里插入图片描述
在这里插入图片描述

主窗体

界面

在这里插入图片描述

代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace db110726超市管理系统
{
    public partial class Form1 : Form
    {
        //开关
        public bool flag = true;

        //定义一个成员变量仓库,仓库
        public DataSet ds;

        public Form1()
        {
            InitializeComponent();
        }


        private void Form1_Load(object sender, EventArgs e)
        {
            //绑定数据
            loadData();
            
            //绑定textbox
            loadtextBox();
        }

        private void loadtextBox()
        {
            if (rbJin.Checked)
            {
                textBox3.Text = rbJin.Tag.ToString();
            }else if (rbBoJin.Checked)
            {
                textBox3.Text = rbBoJin.Tag.ToString();
            }else if (rbZuanShi.Checked)
            {
                textBox3.Text = rbZuanShi.Tag.ToString();
            }
            
            
        }

        private void loadData()
        {
            //初始化组合框数据
            loadCb();
        }

        private void loadDs()
        {
            //查询语句
            String sql = "select * from UsersInfo inner join States on UsersInfo.statusId = States.id;";

            //帮手
            DbHelper helper = new DbHelper();

            //让帮手干活
            ds = helper.getDataSet(sql);
        }

        private void loadCb()
        {
            //召唤帮手
            DbHelper helper = new DbHelper();

            //明确查询语句
            String sql = "select * from states";

            //帮手查仓库
            DataSet ds = helper.getDataSet(sql);

            //设置组合框的显示的值
            cbStates.DisplayMember = "statesName";

            cbStates.ValueMember = "id";

            //组合框绑定数据源
            cbStates.DataSource = ds.Tables["table"];
        }

        private void btnAdd_Click(object sender, EventArgs e)
        {
            //获取相关数据
            String customerId = txtUserId.Text;
            String customerpassWord = txtPassWrod.Text;
            String customerType = null;
            String score = null;

            //判断单选框的选中状态
            if (rbJin.Checked == true)
            {
                customerType = rbJin.Text;
                score = rbJin.Tag.ToString();
            }
            else if (rbBoJin.Checked == true)
            {
                customerType = rbBoJin.Text;
                score = rbBoJin.Tag.ToString();
            }
            else if (rbZuanShi.Checked == true)
            {
                customerType = rbZuanShi.Text;
                score = rbZuanShi.Tag.ToString();
            }

            //获取 sql 语句
            String sql = String.Format("insert into UsersInfo values ('{0}','{1}','{2}',{3},1);", customerId,
                customerpassWord, customerType, score);

            //调用帮手
            DbHelper helper = new DbHelper();

            //让帮手干活
            int n = helper.update(sql);

            if (n > 0)
            {
                MessageBox.Show("添加成功!");
                //让开会变成TRUE 才可以继续拉货
                flag = true;
                fillDgv();
            }
            else
            {
                MessageBox.Show("添加失败!");
            }
        }

        private void cbStates_SelectedIndexChanged(object sender, EventArgs e)
        {
            fillDgv();
        }

        public void fillDgv()
        {
            if (flag)
            {
                //让小车拉货,让用户信息,把数据存进仓库中
                loadDs();
                flag = false;
            }


            //获取组合框中选中的实际值
            String value = cbStates.SelectedValue.ToString();

            //对仓库数据分检
            DataView dv = new DataView(ds.Tables["table"]);
            dv.RowFilter = String.Format("statusId = {0}", value);

            //关闭空行
            dgvUserInfo.AllowUserToAddRows = false;
            //关闭自动生成列
            dgvUserInfo.AutoGenerateColumns = false;

            //重新绑定数据
            dgvUserInfo.DataSource = dv;
        }

        private void button2_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void rbChanged(object sender, EventArgs e)
        {
            //拆箱
            RadioButton send = (RadioButton)sender;
            if (send.Checked)
            {
                String val = send.Tag.ToString();
                textBox3.Text = val;
            }

        }
    }
}
  • 5
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SSOA6

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值