【重构】添加用户——增

前言

添加用户是典型的数据库的增操作,其实思路和VB机房没有太大的区别,主要的不同是在于对于七层的理解以及对设计模式的使用!

作为管理员的一个重要只能,那么添加用户的时候,我们的思维一定要严谨,而且各种细节都要注意到位

界面


这里写图片描述

主要代码

DAL层

public bool addUser(Entity .UserInfo user)
        {
            SQLHelper sqlhelper = new SQLHelper();//实例化一个SQLHelper
            bool flag;//定义一个bool型变量,用来接受返回数据
            SqlParameter[] sqlpara =
            {
                new SqlParameter ("@userID",user.UserID ),
                new SqlParameter ("@PWD",user.PassWord ),
                new SqlParameter ("@Level",user.Level ),
                new SqlParameter ("@UserName",user.UserName ),
            };//定义需要传递的参数
            string sql = "insert into User_Info(userID,PWD,Level,UserName)values(@UserID,@PWD,@Level,@UserName)";
            flag = sqlhelper.ExecuteNonQuery(sql,CommandType.Text,sqlpara);
            return flag;
        }

IDAL层

定义一个接口,B层直接使用IDAL层的方法,而不用直接调用DAL层的方法,降低了耦合!

bool addUser(Entity.UserInfo UserInfo); 

BLL层

它主要是进行业务逻辑判断,和实例化工厂,进行数据库的链接

public bool AddUser(Entity .UserInfo user)
        {
            //实例化工厂 
            Factory.Factory fact = new Factory.Factory();
            //调用工厂方法创建接口    
            IDAL.LoginIDAL idal = fact.CreateUser();            
            bool flag;
            flag = idal.addUser(user);
            return flag;
        }

Facade层

外观层,(外观模式):实例化BLL层,UI层调用Facade中的方法,降低耦合度,更加灵活!

public Boolean AddUser(Entity .UserInfo user)
        {
            bool flag;
            BLL.BLL userBLL = new BLL.BLL();
            flag = userBLL.AddUser(user);
            return flag;
        }

UI层

外观层:界面设计与审查

public void Clear(Control ctrl)  //定义一个方法,用来清空控件里的内容
        {
            foreach (Control c in this.Controls)
            {
                if (c is TextBox)
                {
                    c.Text = "";
                }

                if (c is ComboBox)
                {
                    c.Text = "";
                }

                //c.Text = "";
                //Clear(c);
            }
        }
        public void Check(Control ctr1)  //定义一个方法,检测是否有信息没有输入
        {
            foreach(Control a in this.Controls)
            {
                if(a.Text=="")
                {
                    MessageBox.Show("请把信息输入完整!","提示",MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    a.Focus();
                }
            }
        }
        private void btnEmpty_Click(object sender, EventArgs e)
        {
            Control a = new Control();
            this.Clear(a);
        }
        private void btnCancel_Click(object sender, EventArgs e)
        {
            this.Close();
        }
        private void btnOk_Click(object sender, EventArgs e)
        {
            Control a = new Control();
            this.Check(a);

            if (txtPassWord.Text  !=txtPassWordCheck .Text)//进行密码核验
            {
                MessageBox.Show("两次密码不一致");
                txtPassWord.Text = "";
                txtPassWordCheck.Text = "";
                txtPassWord.Focus();
            }

            try
            {
                Facade.LoginFacade facade = new Facade.LoginFacade();//实例化外观层
                Entity.UserInfo user = new Entity.UserInfo();//实例化实体层

                user.UserName = txtUserName.Text.Trim();
                user.PassWord = txtPassWord.Text.Trim();
                user.Level = cmbUserLevel.Text.Trim();
                user.UserID = txtUserID.Text.Trim();

                Boolean flag = false;
                flag = facade.AddUser(user);

                if (flag != false)
                {
                    MessageBox.Show("用户添加成功!");
                }
                else
                {
                    MessageBox.Show("此用户已经注册!");
                }
            }
            catch(Exception)
            {
                throw;
            }

注意

  1. 在敲代码的时候,多多思考面向对象和面向过程的区别,很多问题都是有很多解决方法的,就看你的是不是最简洁,最全面的!
  2. 代码理解,尽量写属于自己风格的代码,不要照搬照抄
  3. 规范化命名,包括控件、属性、方法、接口、类的,都要有属于自己的命名规范,这样的化对于后期的优化肯定有很大的帮助!
  4. 换位思考,需要考虑用户的需求
  5. 思维严谨,注意细节,尽量减少自己程序出现bug的概率

总结

这算是机房重构中最简单的窗体了,但也是在理清思路的前提之下,所以我建议大家再敲机房重构的时候,一定要理清思路,做好整体规划,再去进行!

劳逸结合,知道做到!加油!



希望本文对您有所帮助!
有什么不足!欢迎指正!
感觉不错可以赞一下哦!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值