机房重构 — 注册

  最近在学“机房重构” 做一个网吧系统的开始首先是登录,然后再是注册(我的顺序是这样的)。

那么,接下来我来总结下机房重构 — 注册窗体设计和代码(完整)。

 

1.窗体:

2.代码

(1).Entity(实体层)

    public class UserEntity
    {

        public string UserID { set; get; }

        public string UserName { set; get; }

        public string Password { set; get; }

        public string Level { set; get; }

        public string State { set; get; }

        public string Sex { set; get; }

        public decimal Cash { set; get; }

        public DateTime Date { set; get; }

        public DateTime Time { set; get; }

        public string WrokrName { set; get; }
        
    
    }

2.IDAL层(接口层)

 //定义注册时查询和添加学生信息的接口
    public interface IStuIDAL                    
    {

        DataTable SelectStu(Entity.UserEntity UserID);    //查询ID是否存在
        int AddUser(Entity.UserEntity user);      //添加用户到User表
                                                    
      
    }

3.DAL

public int AddUser(Entity.UserEntity userinfo)
        {
            SQLHeIper sqlHeIper = new SQLHeIper();

           

            SqlParameter[] sqlParams = new SqlParameter[]
            {
                new SqlParameter("@UserID",userinfo.UserID),
                new SqlParameter("@PWD",userinfo.Password),
                new SqlParameter("@UserName",userinfo.UserName),
                new SqlParameter("@Level",userinfo.Level),
                new SqlParameter("@State",userinfo.State),
                new SqlParameter("@Cash",userinfo.Cash),
                new SqlParameter("@Sex",userinfo.Sex),
                new SqlParameter("Date",userinfo.Date),
                new SqlParameter("Time",userinfo.Time),
            };

            string sql = "INSERT INTO User_Info(UserID,PWD,UserName,Level,State,Cash,Sex,Date,Time)Values(@UserID,@PWD,@UserNam
 e,@Level,@State,@Cash,@Sex,@Date,@Time)";

            int result = sqlHeIper.ExecuteNonQuery(sql, sqlParams, CommandType.Text);
            return result;
        }

(3)BLL(逻辑业务层)

//注册
    public class RegisterBLL
    {
        
        //查询卡号是否被注册
        public DataTable SelectStuBLL(Entity.UserEntity StuInfo)
        {
            Factory.LogFactory fact = new Factory.LogFactory();   //实例化工厂层

            IDAL.IStuIDAL idal = fact.Loguser();

            //接收D层的返回值
            DataTable table = idal.SelectStu(StuInfo);

            return table;

        }
        
        //把用户添加到User_info表中
        public int AddUserBLL(Entity.UserEntity user)
        {
            Factory.LogFactory fact = new LogFactory();   //实例化工厂
            IDAL.IStuIDAL idal = fact.Loguser();  //调用工厂方法创建接口
            int result = idal.AddUser(user);
            return result;
        }
    }

(5)Factory(工厂层)


    //注册
    public class LogFactory
    {
        string StrDB = System.Configuration.ConfigurationManager.AppSettings["DB"];
        public IStuIDAL Loguser()
        {
            // DAL层的类名
            string ClassName = StrDB + "." + "StuDAL";

            return (IDAL.IStuIDAL)Assembly.Load(StrDB).CreateInstance(ClassName);   //反射加工厂的应用
            
        }
    }

(6)Facade(外观层)

public class RegisterFacade
    {
        //注册
        //用户表user_info
        public DataTable SelectFacade(Entity.UserEntity user)
        {
            DataTable flag;
            BLL.RegisterBLL selectUser = new RegisterBLL();
            flag = selectUser.SelectStuBLL(user);
            return flag;
        }
        //用户表User_info增加
        public int AddFacade(Entity.UserEntity add)
        {
            int flag;
            BLL.RegisterBLL adduser = new RegisterBLL();
            flag = adduser.AddUserBLL(add);
            return flag;

        }
    }

(7)UI

private void Button1_Click(object sender, EventArgs e)
        {
       
            if (txtCard.Text.Trim() == "" || txtLevel.Text.Trim() == "" || txtName.Text.Trim() == "" || comState.Text.Trim() == ""|| txtLevel.Text.Trim() == "" || comSex.Text.Trim() == "" || txtCash.Text.Trim() == "")
            {
                MessageBox.Show("请将信息填写完整", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }         
            
            if (Convert.ToInt32(txtCash.Text.Trim()) < 10)
            {
                MessageBox.Show("临时用户充值额度不能低于10元!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;   //否则返回
            }

            if (txtLevel.Text == "VIP用户")
            {
                if (Convert.ToInt32(txtCash.Text.Trim()) < 30)
                {
                        MessageBox.Show("VIP用户充值额度不能低于30元!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        return;   //否则返回
                }
            }

            
       
            //判断用户是否存在
            //实例化外观层
            Facade.RegisterFacade facade = new Facade.RegisterFacade();
            Entity.UserEntity user = new Entity.UserEntity();
            user.UserID = Convert.ToString(txtCard.Text.Trim());   //判断卡号是否存在
            DataTable table = facade.SelectFacade(user);

            if (table.Rows.Count !=0)
            {
                MessageBox.Show("此小主已存在", "温馨提示");
            }
            else
            {
                //将输入的数据存储到“实体层中”
                //开始添加信息到“学生表”中。
                user.UserID = Convert.ToString(txtCard.Text.Trim()) ;
                user.UserName = txtName.Text.Trim();
                user.Password = txtPassword.Text.Trim();
                user.Level = txtLevel.Text.Trim();
                user.Sex = comSex.Text.Trim();
                user.Cash = Convert.ToDecimal(txtCash.Text.Trim());
                user.State = "未结账";
                user.Date = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd").Trim());   //日期
                user.Time = Convert.ToDateTime(DateTime.Now.ToString("HH:mm:ss").Trim());   //时间

                //调用外观层方法提示注册成功
                facade.AddFacade(user);
                MessageBox.Show("注册成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); 

            }

            //判断是否注册成功
            
                      
        }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章