机房重构——注册

建议:
1,如果弄完了七层不是道该如何写下一层,建议彻彻底底的,断点调试的方法看看代码的整个过程是如何走向的。
2,彻底明白七层登陆的每一步,七层登陆就涉及到查的功能。
3,说是七层,我们可以知道外观层的代码和BLL层的代码基本没有区别,IDAL层只是提供一个接口,而方法的实现全靠DAL层,不同的窗体,工厂层的代码基本一致。
在这里插入图片描述

DAL

namespace DAL
{
     public  class DRegister: IDAL.IRegister
    {
        //写入注册信息
        public DataTable addUser (Entity .UserEntity  UserInfo)
        {
            SQLHelper sqlHelper = new SQLHelper();
            SqlParameter[] sqlParams =
            {   new SqlParameter("@UserID",UserInfo .UserID),
                new SqlParameter ("@Phone",UserInfo .Phone),
                new SqlParameter("@PassWord",UserInfo.PWD),
                new SqlParameter("@Balance",UserInfo.Balance),
                new SqlParameter("@ChargeStand",UserInfo.ChargeStand)

            };
            string sql = "Insert into [User](UserID,Phone,PassWord,Balance,Authority,ChargeStand,Registration)values(@UserID,@Phone,@PWD,@Balance,'一般用户',@ChargeStand,getdate())";

            DataTable table = sqlHelper.ExecuteQuery(sql, sqlParams, CommandType.Text);
            return table;
        }

        //查询是否有相同的User ID名称
        public DataTable selectaddUser(Entity.UserEntity UserInfo)
        {
            SQLHelper sqlHelper = new SQLHelper();
            SqlParameter[] sqlParams = { new SqlParameter("@UserID", UserInfo.UserID) };
            string sql = "select * from [User] where UserID=@UserID";
            DataTable table = sqlHelper.ExecuteQuery(sql, sqlParams, CommandType.Text);
            return table;
        }

        //更新余额信息
        public DataTable updateUserInfoBalance(Entity.UserEntity UserInfo)
        {
            SQLHelper sqlHelper = new SQLHelper();
            SqlParameter[] sqlParams =
            {
                    new SqlParameter("@UserID",UserInfo.UserID),
                    new SqlParameter("@Balance",UserInfo.Balance)
            };
            string sql = "update [User] set Balance=Balance+@Balance where UserID=@UserID";
            DataTable balance = sqlHelper.ExecuteQuery(sql, sqlParams, CommandType.Text);
            return balance;
        }
        //更改密码
        public DataTable updateUserInfoPassWord(Entity.UserEntity UserInfo)
        {
            SQLHelper sqlHelper = new SQLHelper();
            SqlParameter[] sqlParameters =
            {
                new SqlParameter("@UserId",UserInfo.UserId),
                new SqlParameter("@PWD",UserInfo.PWD)
            };
            string sql = "update [User] set PassWord=@PassWord where UserID=@UserID";
            DataTable password = sqlHelper.ExecuteQuery(sql, sqlParameters, CommandType.Text);
            return password;
        }
        //查询旧密码是否正确
        public DataTable selectUserInfoPassWord(Entity.UserEntity UserInfo)
        {
            SQLHelper sqlHelper = new SQLHelper();
            SqlParameter[] sqlParams =
            {
                new SqlParameter("@UserID", UserInfo.UserID),
                new SqlParameter("@PassWord",UserInfo.PWD)
            };
            string sql = "select * from [User] where UserID=@UserID and PWD=@PWD";
            DataTable table = sqlHelper.ExecuteQuery(sql, sqlParams, CommandType.Text);
            return table;
        }
    }
}

IDAL

namespace IDAL
{
    public interface   IRegister
    {
        DataTable addUser(Entity.UserEntity userInfo);                    //添加注册信息
        DataTable selectaddUser(Entity.UserEntity userInfo);              //查询数据库中是否有相同的User和id号
        DataTable updateUserInfoBalance(Entity.UserEntity userInfo);                 //充值后更新数据库中余额
        DataTable updateUserInfoPassWord(Entity.UserEntity userInfo);          //更改密码
        DataTable selectUserInfoPassWord(Entity.UserEntity userInfo);              //查询旧密码是否正确
    }   
} 

BLL

namespace BLL
{
    public  class BRegister
    {
        //B层实现抽象工厂和接口的方法,然后再这里进行逻辑判断
        public bool UserBLL(Entity .UserEntity UserInfo)
        {
            Factory.FTRegister fact = new Factory.FTRegister();//实例化工厂
            IRegister idal = fact.CreateUser();  //调用工厂方法创建接口
            DataTable table = idal.addUser(UserInfo);// 接受D层的返回值
            bool flag;
            if (table.Rows.Count==0) //返回的DataTable类型,如果它的行数等于0,说明没有符号该账号的密码的用户
            {
                flag = false;
            }
            else
            {
                flag = true;
            }
            return flag;
        }

        //查询数据库表中是否有这个用户
        public bool selectUserBLL(Entity .UserEntity UserInfo)
        {
            Factory.FTRegister fact = new Factory.FTRegister();//实例化工厂
            IRegister idal = fact.CreateUser(); //调回工厂方法创建接口
            DataTable table = idal.selectaddUser(UserInfo);//接受D层的返回值
            bool flag;
            if (table .Rows .Count ==0) //返回的DataTable类型,如果它的行数等于0,说明没有符号该账号的密码的用户
            {
                flag = false;
            }
            else
            {
                flag = true;
            }
            return flag;
        }

        //更新余额中的数据,原始余额加上充值余额
        public bool updateUserBalanceBLL(Entity .UserEntity UserInfo)
        {
            Factory.FTRegister fact = new Factory.FTRegister();//实例化工厂
            IRegister idalupdate = fact.CreateUser();//调回工厂方法创建接口
            DataTable table = idalupdate.updateUserInfoBalance(UserInfo);//接受D层的返回值
            bool flag;
            if (table.Rows.Count == 0)//返回的DateTable类型,如果它的行数等于0.说明没有符号该账号的密码的用户
            {
                flag = false;
            }
            else
            {
                flag = true;
            }
            return flag;
        }

        //更新用户密码
        public bool  updateUserPWSBLL(Entity.UserEntity UserInfo)
        {
            Factory.FTRegister  fact = new Factory.FTRegister();//实例化工厂
            IRegister  passwordupdate = fact .CreateUser();//调用工厂方法创建接口
            DataTable table = passwordupdate.updateUserInfoPassWord(UserInfo);//接受D层的返回值
            bool flag;
            if (table.Rows.Count == 0)//返回的DataTable类型,如果它的行数等于0,说明没有符号该账号的密码的用户

            {
                flag = false;
            }
            else
            {
                flag = true;
            }
            return flag;
        }
        //
        //查询数据库表中的用户旧密码是否正确
        public bool selectUserPWBLL(Entity .UserEntity UserInfo)
        {
            Factory.FTRegister fact = new Factory.FTRegister();
            IRegister idal = fact.CreateUser();
            DataTable table = idal.selectUserInfoPassWord(UserInfo);
            bool flag;
            if (table .Rows .Count ==0)
            {
                flag = false;
            }
            else
            {
                flag = true;
            }
            return flag;
        }
    }
}

Factory

namespace Factory
{
    public class FTRegister
    {
        string StrDB = System.Configuration.ConfigurationManager.AppSettings["DB"];

        public IRegister  CreateUser()
        {
            string ClassName = StrDB + "." + "RegisterDAL";//DAL层的类明
            return (IRegister)Assembly.Load(StrDB).CreateInstance(ClassName);//反射加工厂的应用
        }
    }
}

Facade

namespace Facade
{
    public class FDRegister
    {
        //注册添加用户信息
        public Boolean addUser(Entity .UserEntity user )
        {

            //调回B层方法,然后将U层数据传入B层或者信息到U层
            bool flag;
            BLL.BRegister userBLL = new BLL.BRegister();
            flag = userBLL.UserBLL(user);
            return flag;
        }

        //查询账号是否已经注册
        public Boolean selectaddUser(Entity .UserEntity user  )
        {
            //调回B层方法,然后将U层数据传入B层或者返回信息到U层
            bool flag;
            BLL.BRegister selectuserBLL = new BLL.BRegister();
            flag = selectuserBLL.selectUserBLL(user);
            return flag;            
        }

        //更新充值后的用户余额
        public Boolean updateUserInfoBalance(Entity .UserEntity  userup )
        {
            bool flag;
            BLL.BRegister updateuserBLLBalanc = new BLL.BRegister();
            flag = updateuserBLLBalanc.updateUserBalanceBLL(userup );
            return flag;
        }
        //更改密码
        public  Boolean updateUserInfoPassWord(Entity .UserEntity useruppw)
        {
            bool flag;
            BLL.BRegister updateuserBllPassWord = new BLL.BRegister();
            flag = updateuserBllPassWord.updateUserPWSBLL(useruppw);
            return flag;
        }

        //查询旧密码是否正确
        public Boolean selectUserInfoPassWord(Entity .UserEntity user)
        {
            bool flag;
            BLL.BRegister selectuserBllPassWord = new BLL.BRegister();
            flag = selectuserBllPassWord.selectUserPWBLL(user);
            return flag;
        }
    }
}

UI

namespace UI
{
    public partial class frmRegister : Form
    {
        private string userid;
        public frmRegister (string userid)
        {
            this.userid = userid;
            InitializeComponent();
        }
       
        public frmRegister()
        {
            InitializeComponent();
        }

        private void frmRegister_Load(object sender, EventArgs e)
        {

        }

        private void  btnRegister_Click(object sender, EventArgs e)
        {
            //判断输入不能为空
            if (txtUserID.Text.Trim() == "")
            {
                lblMasage.Text = "用户名不能为空";
                return;
            }

            if (txtPhone.Text.Trim() == "")
            {
                lblMasage.Text = "手机号不能为空";
                return;

            }

            if (txtPWD .Text =="")
            {
                 lblMasage.Text = "密码不能为空";
                return;
            }

            if (txtSPWD .Text =="")
            {
                lblMasage.Text = "确认密码不能为空";
                return;
            }

            if (txtPWD .Text .Trim ()!=txtSPWD .Text .Trim ())
            {
                lblMasage.Text = "两次密码输入不一致";
                return;
            }

            Facade.LoginFacade serialNumber = new Facade.LoginFacade();
            //string userID = "";
           int SerialNumber = serialNumber.selectChargeStandard(userid);
            Facade.FDRegister facade = new Facade.FDRegister();
            Entity.UserEntity user = new Entity.UserEntity();
            user.UserID = txtUserID.Text.Trim();
            user.Phone = txtPhone.Text.Trim();
            user.PWD = txtSPWD.Text.Trim();
            //user.ChargeStand = serialNumber;
            Boolean flag = false;
            Facade.FDRegister FRegister = new Facade.FDRegister();//实例化外观
            flag=FRegister.selectaddUser(user);
            if (flag!=false )
            {
                lblMasage.Text = "此号已注册";
                return;
            }
            flag = FRegister.addUser(user);//调回外观的方法,返回给user
            if (flag!=false )
            {
                MessageBox.Show("注册成功,请登录");
                this.Hide();

            }
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值