建議:
1,如果弄完了七層不是道該如何寫下一層,建議徹徹底底的,斷點除錯的方法看看**的整個過程是如何走向的。
2,徹底明白七層登陸的每一步,七層登陸就涉及到查的功能。
3,說是七層,我們可以知道外觀層的**和bll層的**基本沒有區別,idal層只是提供乙個介面,而方法的實現全靠dal層,不同的窗體,工廠層的**基本一致。
namespace dal
; 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)
;string sql = "select * from [user] where userid=@userid";
datatable table = sqlhelper.executequery(sql, sqlparams, commandtype.text);
return table;
}//更新餘額資訊
public datatable updateuserinfobalance(entity.userentity userinfo)
;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)
;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)
;string sql = "select * from [user] where userid=@userid and pwd=@pwd";
datatable table = sqlhelper.executequery(sql, sqlparams, commandtype.text);
return table;}}
}
namespace idal
}
namespace bll
else
return flag;
}//查詢資料庫表中是否有這個使用者
public bool selectuserbll(entity .userentity userinfo)
else
return flag;
}//更新餘額中的資料,原始餘額加上充值餘額
public bool updateuserbalancebll(entity .userentity userinfo)
else
return flag;
}//更新使用者密碼
public bool updateuserpwsbll(entity.userentity userinfo)
else
return flag;}//
//查詢資料庫表中的使用者舊密碼是否正確
public bool selectuserpwbll(entity .userentity userinfo)
else
return flag;}}
}
namespace factory}}
namespace facade
//查詢賬號是否已經註冊
public boolean selectadduser(entity .userentity user )
//更新充值後的使用者餘額
public boolean updateuserinfobalance(entity .userentity userup )
//更改密碼
public boolean updateuserinfopassword(entity .userentity useruppw)
//查詢舊密碼是否正確
public boolean selectuserinfopassword(entity .userentity user)}}
namespace ui
public frmregister()
private void frmregister_load(object sender, eventargs e)
private void btnregister_click(object sender, eventargs e)
if (txtphone.text.trim() == "")
if (txtpwd .text =="")
if (txtspwd .text =="")
if (txtpwd .text .trim ()!=txtspwd .text .trim ())
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();
= serialnumber;
boolean flag = false;
facade.fdregister fregister = new facade.fdregister();//例項化外觀
flag=fregister.selectadduser(user);
if (flag!=false )
flag = fregister.adduser(user);//調回外觀的方法,返回給user
if (flag!=false )}}
}
機房重構總結
萬事開頭難,也不知道是哪位大師說的,這次機房的重構讓我深刻的體會到了這句話的含義。剛剛接觸分層,對分層也不理解,照著三層登陸的例項敲乙個登陸出來,然後看著網上的包圖,就想著加乙個抽象工廠,簡直無從下手,不斷的看書,也請教前人。到最後看抽象工廠的設計模式都不用看目錄,直接翻開了。無從下手,不知所措,這...
機房重構 報表
從第一版的機房收費系統就有報表的使用,當時確實是第一次接觸到報表這個東西,因為vb中沒有報表,所以當初呼叫的是其他的報表工具。這次機房重構中再次用到報表,看過一些關於機房重構的部落格,了解到vs平台有自帶報表功能,所以這一次嘗試使用。1 關於vs平台中的報表,第一步還是先建立資料集 2 修改自己所需...
C DataGridView《機房重構》
機房重構中,我們都用到了datagridview控制項,我分享一下我用這個控制項的收穫。1 設定datagridview的屬性selectionmode為fullrowselect,這樣就使datagridview不是選擇乙個字段,而是選擇一整行了。2 設定datagridview的屬性multis...