在修改密码时,我不懂的是,修改后的密码如何通过传值最后保存在数据库中的。
首先UI层要接受Facade层的值。
Entity.EntityLogin user = new Entity.EntityLogin();
user.PassWord = textBox1.Text.ToString();
user.newPWD1 = textBox2.Text;
user.newPWD2 = textBox3.Text;
user.UserID = frmLogin.userid;
Facade.ModifyPWDFacade modifyPWDFacade = new Facade.ModifyPWDFacade();
bool flag = modifyPWDFacade.checkPWD(user);
Facade层要通过BLL层传来的数据,通过IDAL层解耦。
public bool checkPWD(Entity.EntityLogin PassWord)
{
BLL.ModifyPWDBLL modifyPWDBLL = new BLL.ModifyPWDBLL();
bool list = modifyPWDBLL.checkPWD(PassWord);
return list;
}
public bool updatePWD(Entity.EntityLogin PassWord)
{
BLL.ModifyPWDBLL modifyPWDBLL = new BLL.ModifyPWDBLL();
bool list = modifyPWDBLL.updatePWD(PassWord);
return list;
}
DAL层是与数据库打交道的。
SQLHelper SQLHelper = new SQLHelper();
SqlParameter[] ps = { new SqlParameter("@userid", password.UserID) };
string sql = "select * from [T-User] where UserID =@userid";
DataTable list = SQLHelper.ExecuteQuery (sql,ps,CommandType.Text);
return list;
BLL.ModifyPWDBLL modifyPWDBLL = new BLL.ModifyPWDBLL();
bool list = modifyPWDBLL.updatePWD(PassWord);
return list;
Factory层是工厂层,通过反射工厂来传值。
public IDAL.IDALModifyPWD checkPWD( )
{
string StrDB = System.Configuration.ConfigurationManager.AppSettings["DB"];
string name = StrDB + "." + "checkPWD";
IDAL.IDALModifyPWD idalModifyPWD = (IDAL.IDALModifyPWD)Assembly.Load("DAL").CreateInstance(name);
return idalModifyPWD;
}
public IDAL.IDALModifyPWD updatePWD( )
{
string StrDB = System.Configuration.ConfigurationManager.AppSettings["DB"];
string name = StrDB + "." + "updatePWD";
IDAL.IDALModifyPWD dALModifyPWD = (IDAL.IDALModifyPWD)Assembly.Load("DAL").CreateInstance(name);
return dALModifyPWD;
}
最后是IDAL层,这里是定义接口的。
public interface IDALModifyPWD
{
bool checkPWD(Entity.EntityLogin password;)
bool updatePWD(Entity.EntityLogin password;)
}