【机房重构】之修改密码

【前言】

进行机房重构,七层的架构,可以说是都是套路,当然有大框架在这,里面的小细节也需要自己补充呢,在这其中逻辑思路是很重要很重要的,刚开始进行时,每个功能咋传值,什么逻辑,我完全是晕晕的状态,想到这一点,丢掉那个,也是“服”了自己了。后面通过跟周边的小巨人们请教,终于自己有点开窍了呢。对于一个功能,首先分析客户需求,也就是在U层,我们想要像用户展示什么功能,达到什么效果。然后就是D层,想要在数据库中获得什么,每次用专业的数据库语句增、删、改 查”去思考,这时候可以多借助纸笔呢,写下来,然后再将其编程sql语句,D层的工作也就结束了。再就是B层根据一些条件,进行逻辑判断。其他层的代码也就迎刃而解了。

按照上面这种思路,去进行修改密码这个窗体。首先用户需要判断旧密码是否正确,然后就是两次新密码是否一致,最后就是对新密码的修改成功。慢慢的感觉自己有了小小的进步,理清楚一些逻辑,代码就洒洒水了!(虽然有的不熟悉代码还需要查询,嘿嘿!)当然理论与实践结合才是最重要的嘛,下面看一下我的伟大工程吧!

U层

  private void btnOK_Click(object sender, EventArgs e)
        {
           
            //对于输入框进行常规的判断
            if (txtOldPassword.Text=="")
            {
                MessageBox.Show("请输入旧密码!");

            }

            if (txtNewPassword.Text=="")
            {
                    MessageBox.Show("请输入新密码!");
             }
            if (txtOKNewPassword.Text == "")
            {
                MessageBox.Show("请确定新密码!");
            }
            
            //实例化各层的类
            LoginEntity.UserInfo user = new LoginEntity.UserInfo();
            user.PWD = txtOldPassword.Text.ToString();
            user.newPwd1 = txtNewPassword.Text;
            user.newPwd2 = txtOKNewPassword.Text;


            user.userID = Form1.LoginTxtUserID;
            
            Facade.ModifypwdFacade facade = new Facade.ModifypwdFacade();
            bool flag = facade.checkpwd(user);
            if (flag==false)
            {
                MessageBox.Show("旧密码输入错误,请重新输入!");
                txtOldPassword.Focus();
                txtOldPassword.Clear();
            }
            else
            {
                if (txtNewPassword.Text !=txtOKNewPassword.Text)
                {
                    MessageBox.Show("两次输入密码不相同,请重新输入!");
                    txtOKNewPassword.Clear();
                    txtNewPassword.Clear();
                    txtNewPassword.Focus();
                }

                else
                {
                    user.PWD = txtNewPassword.Text;
                    bool result = facade.updatePWD(user);
                    if (result==true)
                    {
                        MessageBox.Show("密码修改成功!");
                        txtNewPassword.Clear();
                        txtOKNewPassword.Clear();
                        txtOldPassword.Clear();
                    }

                    else
                    {
                        MessageBox.Show("密码修改失败!");
                    }
                


B层

 public  class ModifypwdBLL
    {
      public bool checkpwd(UserInfo pwd) //判断旧密码是否正确
      {             
          Factory.ModifypwdFactory fac = new Factory.ModifypwdFactory();
          IDAL.IModifyPWD idal = fac.checkpwd();
          DataTable table= idal.checkpwd( pwd);
          string dt = table.Rows[0]["PWD"].ToString();
          

          // bool flag;        
          if (pwd.PWD ==dt.Trim() )
          {
              return true;
          }
          else
          {
              return false;
          }      
      }

      public bool updatePWD(UserInfo userinfo)   //修改密码
      {
          Factory.ModifypwdFactory factory = new Factory.ModifypwdFactory();
          IDAL.IModifyPWD dt = factory.updatePWD();
          int  ds = dt.updatePWD(userinfo);
         
          if (ds !=0)
          {
              return true;
          }

          else
          {
              return false;
          }
      }
  

D层
 public class SqlSeverModifyPWDDAL:IDAL.IModifyPWD
    {
       public DataTable  checkpwd(UserInfo pwd)
       {
           SqlParameter[] parameter = { new SqlParameter("@userID",pwd.userID)};
           string sql = "select * from User_Info where UserID=@userID";
           DataTable table = SQLHelper.SqlHelper.ExecuteDataTable(sql, CommandType.Text, parameter);
           return table;       
       }

       public int updatePWD(UserInfo userInfo)
       {
           SqlParameter[] parameter = { new SqlParameter("@userID",userInfo.userID),
                                        new SqlParameter("@PWD",userInfo.PWD)};
           string sql = "update User_Info  set PWD=@PWD where UserID=@userID ";
           int result = SQLHelper.SqlHelper.AddDelUpdate(sql,CommandType.Text,parameter);
           return result;
       
       
       }
   
   
   }

【总结】

老师经常说“思想比技术更重要”,我篡改一下“思路比套路更重要”,嘿嘿!自己的小见解!

你可能感兴趣的:(机房重构)