【前言】
进行机房重构,七层的架构,可以说是都是套路,当然有大框架在这,里面的小细节也需要自己补充呢,在这其中逻辑思路是很重要很重要的,刚开始进行时,每个功能咋传值,什么逻辑,我完全是晕晕的状态,想到这一点,丢掉那个,也是“服”了自己了。后面通过跟周边的小巨人们请教,终于自己有点开窍了呢。对于一个功能,首先分析客户需求,也就是在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("密码修改失败!");
}
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;
}
}
【总结】
老师经常说“思想比技术更重要”,我篡改一下“思路比套路更重要”,嘿嘿!自己的小见解!