实现会员管理的会员升级规则窗体功能代码(二十一)
来源:互联网 发布:myeclipse里用数据库 编辑:程序博客网 时间:2024/04/29 23:56
实现会员管理的会员升级规则窗体功能代码(二十一)
3.5.2会员升级规则
3.5.2.1会员升级规则主界面
当会员卡类别设置好后,会员卡还可以根据积分进行升级。这里是设置一个升级的规则,可以根据会员卡的等级高低进行排序和升级的设置,如当普通卡积分到600分时就可以升级为银卡,这里只能从低级的卡升至高级。积分是在收费录入时根据结账的多少进行积分的,只有是拥有会员卡的才能积分,积分规则:消费一元积分0.01分。
主界面截图:
3.5.2.1(图1)
从界面上可以看到我们这里用到的控件有:
控件名称
说明
按钮控件button
第一要设置每个控件的Text,第二设置控件Name;不同的是dataGridView右键进行编辑列。
表格控件dataGridView
查询功能实现:
第一步:数据库
1、 表与关系
3.5.2.1(图2)
表1:会员升级规则表(BT_MembeUpgradeRuleTable)
列名
数据类型
主键/外键
说明
MembeUpgradeRuleID
int - Identity
主键
会员升级规则ID
Original_MemberCategoryID
int
外键
原卡类别_会员类别ID
Upgraded_MemberCategoryID
int
升级后卡类别_会员类别ID
UpgradeCondition
nchar (100)
升级条件
WhetherEffective
bit
有效否
表2:会员类别表(BT_MemberCategoryTable)
列名
数据类型
主键/外键
说明
MemberCategoryID
int - Identity
主键
会员类别 ID
MemberCategoryNumber
nchar (30)
会员类别编号
MemberCategoryDiscount
numeric (18, 2)
会员类别折扣
MemberCategoryName
nchar (30)
会员类别名称
Remarks
nchar (150)
备注
WhetherEffective
bit
有效否
功能代码实现
查询会员升级规则
(1)、存储过程代码:
--查询会员升级规则IF(@Type ='FRM_HuiYuanShengJiGuiZe_Load_ChaXunShengJiGuiZe')BEGINSELECT LTRIM(RTRIM(BT_MembeUpgradeRuleTable.MembeUpgradeRuleID))AS MembeUpgradeRuleID, LTRIM(RTRIM(BT_MemberCategoryTable.MemberCategoryName)) AS Original, LTRIM(RTRIM(BT_MembeUpgradeRuleTable.UpgradeCondition))AS UpgradeCondition, LTRIM(RTRIM(BT_MemberCategoryTable_1.MemberCategoryName))AS MemberCategoryName, LTRIM(RTRIM(BT_MembeUpgradeRuleTable.WhetherEffective))AS WhetherEffective FROM BT_MemberCategoryTable INNER JOIN BT_MembeUpgradeRuleTable ON BT_MemberCategoryTable.MemberCategoryID = BT_MembeUpgradeRuleTable.Original_MemberCategoryID INNER JOIN BT_MemberCategoryTable AS BT_MemberCategoryTable_1 ON BT_MembeUpgradeRuleTable.Upgraded_MemberCategoryID = BT_MemberCategoryTable_1.MemberCategoryIDWHERE BT_MembeUpgradeRuleTable.WhetherEffective =1END--查询会员卡类别IF(@Type='FRM_HuiYuanShengJiGuiZe_Insert_Load_ChaXunKaLeiXing')BEGINSELECT LTRIM(RTRIM(MemberCategoryID)) AS MemberCategoryID, LTRIM(RTRIM(MemberCategoryName)) AS MemberCategoryNameFROM BT_MemberCategoryTableEND
(2)、逻辑层代码:
[OperationContract] #region 查询升级规则 public DataSet FRM_HuiYuanShengJiGuiZe_Load_ChaXunShengJiGuiZe() { SqlParameter[] SQLCMDpas ={ new SqlParameter ("@Type",SqlDbType.Char), }; SQLCMDpas[0].Value = "FRM_HuiYuanShengJiGuiZe_Load_ChaXunShengJiGuiZe"; DataTable myDataTable = myDALMethod.QueryDataTable("HuiYuanGuanLi_FRM_HuiYuanShengJiGuiZe", SQLCMDpas); DataSet myDataSet = new DataSet(); myDataSet.Tables.Add(myDataTable); return myDataSet; } #endregion
(3)、界面层代码:
#region Load事件 private void FRM_HuiYuanShengJiGuiZe_Load(object sender, EventArgs e) { // 查询绑定会员升级规则 dgvMembeUpgradeRule.DataSource = myFRM_HuiYuanShengJiGuiZeClient.FRM_HuiYuanShengJiGuiZe_Load_ChaXunShengJiGuiZe().Tables[0]; dgvMembeUpgradeRule.ClearSelection();//清空默认选行 } #endregion
删除会员升级规则
(1)、存储过程代码:
--删除会员升级规则IF(@Type ='btnBaoCun_Click_DeleteShengJiGuiZe')BEGINDELETE BT_MembeUpgradeRuleTableWHERE BT_MembeUpgradeRuleTable.MembeUpgradeRuleID =@MembeUpgradeRuleIDEND
(2)、逻辑层代码:
[OperationContract] #region 删除升级规则 public int btnBaoCun_Click_DeleteShengJiGuiZe(int intMembeUpgradeRuleID) { SqlParameter[] SQLCMDpas ={ new SqlParameter ("@Type",SqlDbType.Char), new SqlParameter ("@MembeUpgradeRuleID",SqlDbType.Int), }; SQLCMDpas[0].Value = "btnBaoCun_Click_DeleteShengJiGuiZe"; SQLCMDpas[1].Value = intMembeUpgradeRuleID; int count = myDALMethod.UpdateData("HuiYuanGuanLi_FRM_HuiYuanShengJiGuiZe", SQLCMDpas); return count; } #endregion
(3)、界面层代码:
#region 删除事件 private void btnShanChu_Click(object sender, EventArgs e) { DialogResult dr = MessageBox.Show("是否删除?", "系统提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);//弹出确定对话框 if (dr == DialogResult.OK)//如果点了确定按钮 { MembeUpgradeRuleID = Convert.ToInt32(dgvMembeUpgradeRule.CurrentRow.Cells["会员升级规则ID"].Value);//获取点击行的会员升级规则 if (MembeUpgradeRuleID != 0) { myFRM_HuiYuanShengJiGuiZeClient.btnBaoCun_Click_DeleteShengJiGuiZe(MembeUpgradeRuleID);//执行删除会员升级规则 dgvMembeUpgradeRule.DataSource = myFRM_HuiYuanShengJiGuiZeClient.FRM_HuiYuanShengJiGuiZe_Load_ChaXunShengJiGuiZe().Tables[0];//刷新界面 } else { MessageBox.Show("请选择要删除的行。。"); } } } #endregion
3.5.2.2新增会员升级规则
界面显示的原卡类别升级前该卡所属的类别,升级后卡别是指经过积分规则升级后的卡的类别。升级后卡别不可以比原卡类别高级。
新增会员升级规则截图:
3.5.2.2(图1)
新增会员升级规则
(1)、存储过程代码:
--新增会员升级规则IF(@Type='btnBaoCun_Click_BaoCunXinZengShengJiGuiZe')BEGINBEGIN TRANINSERT BT_MembeUpgradeRuleTable(Original_MemberCategoryID, Upgraded_MemberCategoryID, UpgradeCondition, WhetherEffective)VALUES (@Original_MemberCategoryID, @Upgraded_MemberCategoryID, @UpgradeCondition, @WhetherEffective) SELECT @@IDENTITY COMMIT TRANEND
(2)、逻辑层代码:
[OperationContract] #region 新增升级规则 public int btnBaoCun_Click_BaoCunXinZengShengJiGuiZe(int intOriginal_MemberCategoryID, int intUpgraded_MemberCategoryID, string strUpgradeCondition, bool blWhetherEffective) { SqlParameter[] SQLCMDpas ={ new SqlParameter ("@Type",SqlDbType.Char), new SqlParameter ("@Original_MemberCategoryID",SqlDbType.Int), new SqlParameter ("@Upgraded_MemberCategoryID",SqlDbType.Int), new SqlParameter ("@UpgradeCondition",SqlDbType.Char), new SqlParameter ("@WhetherEffective",SqlDbType.Bit), }; SQLCMDpas[0].Value = "btnBaoCun_Click_BaoCunXinZengShengJiGuiZe"; SQLCMDpas[1].Value = intOriginal_MemberCategoryID; SQLCMDpas[2].Value = intUpgraded_MemberCategoryID; SQLCMDpas[3].Value = strUpgradeCondition; SQLCMDpas[4].Value = blWhetherEffective; int count = myDALMethod.UpdateData("HuiYuanGuanLi_FRM_HuiYuanShengJiGuiZe", SQLCMDpas); return count; } #endregion
(3)、界面层代码:
#region 保存数据到表中 private void btnBaoCunShuJuDaoBiaoGe_Click(object sender, EventArgs e) { //从界面控件中赋值给dgvHuiYuanShengJiGuiZe int index = 0; index = dgvHuiYuanShengJiGuiZe.Rows.Add(); dgvHuiYuanShengJiGuiZe.Rows[index].Cells["原卡类别"].Value = cboOriginalMemberCategory.Text.ToString().Trim(); dgvHuiYuanShengJiGuiZe.Rows[index].Cells["原卡类别ID"].Value = cboOriginalMemberCategory.SelectedValue; dgvHuiYuanShengJiGuiZe.Rows[index].Cells["升级后卡别ID"].Value = cboUpgradedMemberCategory.SelectedValue; dgvHuiYuanShengJiGuiZe.Rows[index].Cells["升级后卡别"].Value = cboUpgradedMemberCategory.Text.ToString().Trim(); dgvHuiYuanShengJiGuiZe.Rows[index].Cells["升级条件"].Value = txtBeginUpgradeCondition.Text + "—" + EndUpgradeCondition.Text; dgvHuiYuanShengJiGuiZe.Rows[index].Cells["有效否"].Value = Convert.ToBoolean(1); } #endregion #region 新增会员卡升级规则 private void btnBaoCun_Click(object sender, EventArgs e) { DialogResult dr = MessageBox.Show("确定新增?", "系统提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);//弹出确定对话框 if (dr == DialogResult.OK)//如果点了确定按钮 { if (dgvHuiYuanShengJiGuiZe.Rows.Count > 0)//判断dgvHuiYuanShengJiGuiZe行数大于0 { int count = 0;//声明一个整形变量 for (int i = 0; i < dgvHuiYuanShengJiGuiZe.Rows.Count; i++)//循环dgvHuiYuanShengJiGuiZe行数 { int intOriginal_MemberCategoryID = Convert.ToInt32(dgvHuiYuanShengJiGuiZe.Rows[i].Cells["原卡类别ID"].Value);//给声明的变量原卡类别ID intOriginal_MemberCategoryID赋值 int intUpgraded_MemberCategoryID = Convert.ToInt32(dgvHuiYuanShengJiGuiZe.Rows[i].Cells["升级后卡别ID"].Value);//给声明的变量升级后卡别ID intUpgraded_MemberCategoryID赋值 string strUpgradeCondition = dgvHuiYuanShengJiGuiZe.Rows[i].Cells["升级条件"].Value.ToString();//给声明的变量升级条件strUpgradeCondition赋值 bool blWhetherEffective = Convert.ToBoolean(dgvHuiYuanShengJiGuiZe.Rows[i].Cells["有效否"].Value);//给声明的变量有效否blWhetherEffective赋值 count += myFRM_HuiYuanShengJiGuiZeClient.btnBaoCun_Click_BaoCunXinZengShengJiGuiZe(intOriginal_MemberCategoryID, intUpgraded_MemberCategoryID, strUpgradeCondition, blWhetherEffective);//执行新增会员升级规则 } if (count > 0) { MessageBox.Show("保存成功!"); this.Close();//关闭当前窗体 } else { MessageBox.Show("保存失败!"); } } } } #endregion
3.5.2.3修改会员升级规则
这里可以对会员卡升级规则进行修改,可以移除错误的规则,可以修改升级条件等。也可以新增升级规则。
修改会员升级规则截图:
3.5.2.3(图1)
修改会员升级规则
(1)、存储过程代码:
--修改会员升级规则IF(@Type='btnBaoCun_Click_BaoCunXiuGaiShengJiGuiZe')BEGINUPDATE BT_MembeUpgradeRuleTableSET Original_MemberCategoryID=@Original_MemberCategoryID, Upgraded_MemberCategoryID=@Upgraded_MemberCategoryID, UpgradeCondition=@UpgradeCondition WHERE BT_MembeUpgradeRuleTable.MembeUpgradeRuleID=@MembeUpgradeRuleIDEND
(2)、逻辑层代码:
#region 修改升级规则 public int btnBaoCun_Click_BaoCunXiuGaiShengJiGuiZe(int intOriginal_MemberCategoryID, int intUpgraded_MemberCategoryID, string strUpgradeCondition, int intMembeUpgradeRuleID) { SqlParameter[] SQLCMDpas ={ new SqlParameter ("@Type",SqlDbType.Char), new SqlParameter ("@Original_MemberCategoryID",SqlDbType.Int), new SqlParameter ("@Upgraded_MemberCategoryID",SqlDbType.Int), new SqlParameter ("@UpgradeCondition",SqlDbType.Char), new SqlParameter ("@MembeUpgradeRuleID",SqlDbType.Int), }; SQLCMDpas[0].Value = "btnBaoCun_Click_BaoCunXiuGaiShengJiGuiZe"; SQLCMDpas[1].Value = intOriginal_MemberCategoryID; SQLCMDpas[2].Value = intUpgraded_MemberCategoryID; SQLCMDpas[3].Value = strUpgradeCondition; SQLCMDpas[4].Value = intMembeUpgradeRuleID; int count = myDALMethod.UpdateData("HuiYuanGuanLi_FRM_HuiYuanShengJiGuiZe", SQLCMDpas); return count; } #endregion
(3)、界面层代码:
#region Load事件 private void FRM_HuiYuanShengJiGuiZe_Update_Load(object sender, EventArgs e) { DataTable dtKaLeiBie = myFRM_HuiYuanShengJiGuiZeClient.FRM_HuiYuanShengJiGuiZe_Insert_Load_ChaXunKaLeiXing().Tables[0]; cboOriginalMemberCategory = PublicStaticMothd.SetZhiXiaLaKuang(cboOriginalMemberCategory, dtKaLeiBie, "MemberCategoryID", "MemberCategoryName"); DataTable dtLeiBie = myFRM_HuiYuanShengJiGuiZeClient.FRM_HuiYuanShengJiGuiZe_Insert_Load_ChaXunKaLeiXing().Tables[0]; cboUpgradedMemberCategory = PublicStaticMothd.SetZhiXiaLaKuang(cboUpgradedMemberCategory, dtLeiBie, "MemberCategoryID", "MemberCategoryName"); dgvUpdateMembeUpgradeRule.DataSource = myFRM_HuiYuanShengJiGuiZeClient.FRM_HuiYuanShengJiGuiZe_Load_ChaXunShengJiGuiZe().Tables[0]; dgvUpdateMembeUpgradeRule.ClearSelection(); } #endregion #region 移除事件 ArrayList arr = new ArrayList(); private void dgvUpdateMembeUpgradeRule_CellClick(object sender, DataGridViewCellEventArgs e) { if (e.ColumnIndex == 0) { if (dgvUpdateMembeUpgradeRule.CurrentRow.Cells["MembeUpgradeRuleID"].Value == null)//当会员升级规则IDMembeUpgradeRuleID不为空 { if (dgvUpdateMembeUpgradeRule.Rows.Count == 1) { dgvUpdateMembeUpgradeRule.Rows.Clear();//清空会员升级规则表的行 dgvUpdateMembeUpgradeRule.Rows.Add();//新增会员升级规则表的行 } else { if (MessageBox.Show("是否移除?", "提示", MessageBoxButtons.YesNo) == DialogResult.Yes) { dgvUpdateMembeUpgradeRule.Rows.Remove(dgvUpdateMembeUpgradeRule.CurrentRow);//移除界面新增的还没保存到数据库的数据 } } } else { arr.Add(dgvUpdateMembeUpgradeRule.CurrentRow.Cells["MembeUpgradeRuleID"].Value);//获取点击的行会员升级规则IDMembeUpgradeRuleID dgvUpdateMembeUpgradeRule.Rows.Remove(dgvUpdateMembeUpgradeRule.CurrentRow);//移除会员升级规则表的点击的行 for (int i = 0; i < arr.Count; i++) { myFRM_HuiYuanShengJiGuiZeClient.btnBaoCun_Click_DeleteShengJiGuiZe(Convert.ToInt32(arr[i]));//移除数据库的数据 } } } } #endregion #region 保存修改事件 private void btnBaoCun_Click(object sender, EventArgs e) { for (int i = 0; i < dgvUpdateMembeUpgradeRule.Rows.Count; i++)//循环dgvUpdateMembeUpgradeRule行数 { int intOriginal_MemberCategoryID = Convert.ToInt32(dgvUpdateMembeUpgradeRule.Rows[i].Cells["原卡类别ID"].Value);//给声明的变量原卡类别ID intOriginal_MemberCategoryID赋值 int intUpgraded_MemberCategoryID = Convert.ToInt32(dgvUpdateMembeUpgradeRule.Rows[i].Cells["升级后卡别ID"].Value);//给声明的变量升级后卡别ID intUpgraded_MemberCategoryID赋值 string strUpgradeCondition = dgvUpdateMembeUpgradeRule.Rows[i].Cells["升级条件"].Value.ToString();//给声明的变量升级条件strUpgradeCondition赋值 int intMembeUpgradeRuleID = Convert.ToInt32(dgvUpdateMembeUpgradeRule.Rows[i].Cells["MembeUpgradeRuleID"].Value.ToString()); myFRM_HuiYuanShengJiGuiZeClient.btnBaoCun_Click_BaoCunXiuGaiShengJiGuiZe(intOriginal_MemberCategoryID, intUpgraded_MemberCategoryID, strUpgradeCondition, intMembeUpgradeRuleID); } } #endregion
仅供学习,禁止用于商业用途。
虽然我们不能决定自己生命的长度,但可以拓宽它的宽度;虽然我们不能改变容貌,但可以展现笑容;虽然我们不能控制他人,但可以掌握自己;虽然我们不能预知明天,但可以把握今天;虽然你不能样样顺利,但你可以事事尽力。
长相不令人讨厌,如果长得不好,就让自己有才气;如果才气也没有,那就总是微笑。
明日复明日,明日何其多?我生待明日,万事成蹉跎。———《明日歌》
- 实现会员管理的会员升级规则窗体功能代码(二十一)
- 实现会员管理的会员类别设置功能的代码(二十)
- 实现会员管理的会员政策优惠设置功能的代码(二十二)
- Java 实现会员注册升级 关键代码
- 实现会员注册升级
- 实现会员注册升级
- 会员管理系统(不分功能尚未实现)
- JSP小项目,会员管理系统之实现登录功能
- JSP小项目,会员管理系统之实现注册功能
- 实现会员信息录入功能
- C#窗体应用 电子杂志注册会员代码
- 会员管理系统中会员类的实现(选择自 tigerlgf 的 Blog )
- 会员管理模块(补)
- 关于javascript实现注册会员时等待时间的功能
- 会员登陆的检测代码
- 15章实现会员注册升级
- java练习--实现会员注册升级
- 会员订单列表(二)
- 加载中的文件再加载时,第二个加载的文件路径
- 扑克牌的顺子
- cocos2dx 3.x widget 透明过滤 UIbutton实现
- 欢迎使用CSDN-markdown编辑器
- 关于职业发展:一篇不错的文章分享
- 实现会员管理的会员升级规则窗体功能代码(二十一)
- 简述TCP/IP四层体系结构及每层作用
- XMPP-ErrorCode
- 表空间操作
- Qt数据库 QSqlQueryModel实例操作 上下篇
- 安装apk时报错:INSTALL_FAILED_INVALID_URI解决办法
- Swift中的required修饰符
- sqlserver row_number() 未排序问题
- SOLUTION TO SOLVE THE ORACLE QEQUENCE