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;
}
}
}
}