机房重构之充值和显示金额

简介: 机房重构之充值和显示金额

UI层

namespace UI
{
    public partial class Recharge : Form
    {
        public Recharge()
        {
            InitializeComponent();
        }
        private void button2_Click(object sender, EventArgs e)
        {
            Entity.RechargeInfo rechargeInfo = new Entity.RechargeInfo();//实例化充值层
            Facade.RechargeFacade faca = new Facade.RechargeFacade();//实例化外观层
                                                                     //定义需要插入到充值表当中的数据
            rechargeInfo.CardNo = CardNo.Text.Trim();
            rechargeInfo.addmoney = AddMoney.Text.Trim();
            rechargeInfo.state = "未结账";
            rechargeInfo.date = DateTime.Now.ToShortDateString();
            rechargeInfo.time = DateTime.Now.ToShortTimeString();
            rechargeInfo.UserID =LoginUser.UserID;
            Entity.StudentInfo student = new Entity.StudentInfo();//实例化学生
                                                            // Facade.StudentFacade facade = new Facade.StudentFacade(); //实例化学生外观
            student.CardNo = CardNo.Text.Trim();
            student.state = "使用";
            Facade.RechargeFacade Facade = new Facade.RechargeFacade();//实例化学生外观
            Entity.StudentInfo StudentInfo = new Entity.StudentInfo();
            StudentInfo.CardNo = CardNo.Text.Trim();
            DataTable dtCard = Facade.InquiryCardInfo(StudentInfo);
            if (dtCard.Rows.Count != 0) {
                rechargeInfo.studentNo = dtCard.Rows[0][1].ToString();
            }
            if (dtCard.Rows.Count == 0)
            {
                MessageBox.Show("卡号不存在", "温馨提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            bool rechargecard = faca.addrecharge(rechargeInfo);//调用插入充值记录方法
            if (rechargecard)
            {
                StudentInfo.CardNo = CardNo.Text.Trim();
                StudentInfo.cash = AddMoney.Text.Trim();
                int balanceNow = Convert.ToInt32(dtCard.Rows[0][6]) + Convert.ToInt32(AddMoney.Text.Trim());
                StudentInfo.cash = Convert.ToString(balanceNow);
                int dt1 = Facade.updateStudentCash(StudentInfo);
                MessageBox.Show("充值成功");
                label1.Text = Convert.ToString(balanceNow);
            }
            else
            {
                MessageBox.Show("充值失败");
                return;
            }
        }
    }
}

D层

namespace DAL
{
    public class RechargeDAL : IDAL.RechargeIDAL
    {
        public int addrechargeInfo(RechargeInfo reCharge)
        {
            SQLHelper sqlHelper = new SQLHelper();  //实例化SQLhelper
            string sql = "INSERT INTO ReCharge(cardno,studentNo,addmoney,date,time,UserID,state)VALUES(@cardNo,@studentNo,@addmoney,@date,@time,@UserID,@state)"; //插入语句
            SqlParameter[] sqlParams = new SqlParameter[]    //添加信息,赋值
            {
                new SqlParameter ("@studentNo",reCharge.studentNo),
                new SqlParameter ("@cardNo",reCharge.CardNo),
                new SqlParameter ("@addmoney",reCharge.addmoney),
                new SqlParameter ("@date",reCharge.date),
                new SqlParameter ("@time",reCharge.time),
                new SqlParameter ("@UserID",reCharge.UserID),
                new SqlParameter ("@state",reCharge.state),
            };
            int result = sqlHelper.ExecuteNonQuery(sql, sqlParams, CommandType.Text);      //插入
            return result;
        }
        public int updateStudentCash(Entity.StudentInfo StudentInfo)//更新学生余额
        {
            SQLHelper sqlHelper = new SQLHelper();
            SqlParameter[] sqlParams = { new SqlParameter("@CardNo", StudentInfo.CardNo),
                                         new SqlParameter ("@cash",StudentInfo.cash )};
            string sql = @"UPDATE [Student] SET cash=@cash WHERE cardNo=@cardNo";
            int StudentCash = sqlHelper.ExecuteNonQuery(sql, sqlParams, CommandType.Text);
            return StudentCash;
        }
        public DataTable InquiryCardInfo(Entity.StudentInfo StudentInfo)
        {
            SQLHelper sqlhelper = new SQLHelper();
            SqlParameter[] sqlParams ={
                      new SqlParameter("@CardNo",StudentInfo.CardNo)
                       };
            string sql = "select* from Student where CardNo=@CardNo";
            DataTable dt = sqlhelper.ExecuteQuery(sql, sqlParams, CommandType.Text);
            //int i = dt.Rows.Count;
            return dt;
        }
    }
}


相关文章
|
算法 Java PHP
算法思考:红包金额生成
最近在整理过去的项目时,回顾了某年红包活动的项目,其中涉及红包金额计算的算法。近些年各家大厂举办的春节红包活动越来越完善,关于活动背后的整体设计介绍、分析、探讨层出不穷。本篇先不关注整体架构,选择红包金额的计算方法作为分析内容。 在当时的项目中,红包金额计算主要是采用了基于一些入参的随机数生成,并且生成的是单个红包金额,并未使用队列方式做预生成。所以再次回顾这个案例,其中其实还有很多可以玩味和深入思考的地方,在这里做一次思考总结。
106 0
|
数据库
第一次机房收费系统———学生查看余额
第一次机房收费系统———学生查看余额
|
算法 Python
算法创作|模拟商品加入购物车并结算价钱问题解决方法
算法创作|模拟商品加入购物车并结算价钱问题解决方法
97 0
算法创作|模拟商品加入购物车并结算价钱问题解决方法
|
C语言 数据安全/隐私保护
用C语言写一个商品购物收银台系统,统计购买商品总价
要制作一个“系统”,就得先把一个个小功能逐一实现,然后将其整合,我们用C语言只需把它们写成一个个函数即可,直接进入正题,我们列出今天所需的头文件,一共五个。
|
机器学习/深度学习
某销售公司在年末的时候会向员工发放红包,发放的红包金额共有5种,获取的条件各不相同:   1) 五颗星红包,每人8000元,平均月绩效大于80件商品(>80),并且在本年度满勤; 2) 四颗星红包,每
某销售公司在年末的时候会向员工发放红包,发放的红包金额共有5种,获取的条件各不相同:   1) 五颗星红包,每人8000元,平均月绩效大于80件商品(>80),并且在本年度满勤; 2) 四颗星红包,每
227 0
|
JavaScript 前端开发
使用 JavaScript 根据消费金额和消费者是否为会员确定折扣,最终核算实际应该支付的金额
使用 JavaScript 根据消费金额和消费者是否为会员确定折扣,最终核算实际应该支付的金额
456 0
使用 JavaScript 根据消费金额和消费者是否为会员确定折扣,最终核算实际应该支付的金额
SAP MM 并非奇怪现象之MB5B报表里期初库存余额或者期末库存余额为负数?
SAP MM 并非奇怪现象之MB5B报表里期初库存余额或者期末库存余额为负数?
SAP MM 并非奇怪现象之MB5B报表里期初库存余额或者期末库存余额为负数?
控制会员可兑换金额
控制会员可兑换金额
1340 0
|
安全 程序员 数据安全/隐私保护