【C#重构】——充值

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xml1996/article/details/83311995

教师端功能:实现对学生卡号的充值
用到的表:student_info 查询相应卡号学生信息;recharge_info充值记录表

recharge_info充值记录表

在这里插入图片描述

在这里插入图片描述
UI

 public partial class frmTRecharge : Form
    {
         //窗体默认
        public frmTRecharge()
        {
            InitializeComponent();
        }
        
       //点击注册
        private void btnRecharge_Click(object sender, EventArgs e)
        {
            if (txtCardNO.Text.Trim ()=="" || txtRecharge.Text.Trim()=="")
            {
                MessageBox.Show ("请把信息填写完整");
            }
            //实例化实体层的studnetinfo类和rechargeinfo类
            Entity.StudentInfo student = new Entity.StudentInfo();
            Entity.RechargeInfo money = new Entity.RechargeInfo();
            money.UserID = Convert.ToInt32(txtCardNO.Text.Trim());
            money.Addmoney = Convert.ToInt32(txtRecharge.Text.Trim());
            student.UserID = money.UserID;

            DataTable table;
            //查询student表的UserID
            DataTable table1;
            //DataTable table2;
            //实例化外观层
            Facade.RechargeFacade facade = new Facade.RechargeFacade();
            //外观层的查询UserID
            table1 = facade.SelectStudentFacade(student);
            //判断查找到用户输入的UserID是否在使用状态
            if (table1.Rows[0][7].ToString().Trim()=="正使用")
            {
                //如果卡号的状态是正在使用的haul,那就找到status和balance返回回来
                //cash 暂存一个变量等待和充值的前进行加和,状态写在客户端窗体上
                //存在问题:如果这个卡号涉及到是否结账,还需要增加什么内容?
                //如果这个卡号已经注销了怎么进行判断?

                if (table1.Rows[0][4].ToString()!="")
                {
                    //查到的状态赋值到recharge表的status列
                    student.Status=table1.Rows[0][4].ToString();
                    //查到的学生余额暂时存放在balance中
                    student.Balance= Convert.ToInt32(table1.Rows[0][2].ToString());
                    int a = student.Balance;
                    int b = money.Addmoney;
                    //增加表信息内容
                    money.Status = student.Status;
                    table = facade.InsertRechargeFacade(money);
                    int c = a + b;
                    student.Balance = c;
                    //table2 = facade.UpdateStudentFacade(student); 
                    //更新student表之后得到的new balance 和固定还是临时用户 显示在在窗体上
                    txtBalance.Text = Convert.ToString(student.Balance);
                    cmbState.Text = student.Status;
                    MessageBox.Show("充值成功");
                }
                else
	            {
                    MessageBox.Show("卡号不存在");
                }
            }
            else
            {
                if (table1.Rows[0][7].ToString().Trim() == "已经注销")
                {
                    MessageBox.Show("卡号已经注销");
                }
            }            
        }
    }

D层

public class RechargeDAL:IDAL.IRechargeIDL
    {
        /// <summary>
        /// 查询学生表的初始注册钱+学生注册状态
        /// </summary>
        /// <param name="student"></param>
        /// <returns></returns>
        public DataTable SelectStudent(Entity.StudentInfo student)
        {
            SQLHelper sqlHelper = new SQLHelper();
            SqlParameter[] sqlParams = { new SqlParameter("@UserID", student.UserID) };
            String sql = "Select * from student_info where userID =@UserID ";
            DataTable table = sqlHelper.ExecuteQuery(sql, sqlParams, CommandType.Text);
            return table;
        }
        public DataTable InsertRecharge(Entity.RechargeInfo money)
        {
            DateTime date = DateTime.Now;
            SQLHelper sqlHelper = new SQLHelper();
            SqlParameter[] sqlParams = { new SqlParameter("@CardNO",money.UserID),
                                         new SqlParameter("@Date",date.ToShortDateString()),
                                         new SqlParameter("@Status",money.Status),
                                         new SqlParameter("@Addmoney",money.Addmoney)};
            String sql = "Insert into recharge_info(userID,addmoney,date,status) Values(@CardNO,@Addmoney,@Date,@Status)";
            DataTable table = sqlHelper.ExecuteNonQuery(sql,sqlParams,CommandType.Text);
            return table;
        }

IDAL层

public interface IRechargeIDL
    {
        //查询student表,目的返回balance,state,status
        DataTable SelectStudent(Entity.StudentInfo student);
        
        //增加信息(卡号 status addmoney)到recharge表,
        DataTable InsertRecharge(Entity.RechargeInfo money);
        
        //更新student表的balance
        //DataTable UpdateStudent(Entity.StudentInfo student);
    }

颗粒归仓,继续往后走,,,

猜你喜欢

转载自blog.csdn.net/xml1996/article/details/83311995