;
帖子
3919 
精华
积分
11710 
鱼币
0 ¥ 
来自
大连 
在线时间
1858 小时 
注册时间
2007-6-11 
最后登录
2009-10-20 

贴图大师勋章新人进步勋章宣传大使勋章论坛元老勋章

3
发表于 2009-1-5 19:48 | 只看该作者
鍦╟#涓疄鐜3灞傛灦鏋 - 缂栫▼搴 - Powered by SupeSite

浣犵殑浣嶇疆锛缂栫▼搴 >> 璧勮 >> CSharp >> CSharp鏂囨。 >> 璇︾粏鍐呭 鍦ㄧ嚎鎶曠ǹ

鍦╟#涓疄鐜3灞傛灦鏋

鍙戝竷: 2008-6-30 10:14 |  浣滆: admin |   鏌ョ湅: 51娆

鍘熺増鑻辨枃鏂囩珷鍦板潃锛歨ttp://www.codeproject.com/csharp/three_tier_architecture.asp

浠嬬粛

杩欑瘒鏂囩珷璁ㄨ濡備綍鍦╟锛冧腑瀹炵幇3灞傛灦鏋勶紝浣跨敤MS Access鏁版嵁搴撳瓨鍌ㄦ暟鎹傚湪姝わ紝鎴戝湪3灞傛灦鏋勪腑瀹炵幇涓涓皬鍨嬬殑鍙鐢ㄧ殑缁勪欢淇濆瓨瀹㈡埛鏁版嵁銆傚苟鎻愪緵娣诲姞锛屾洿鏂帮紝鏌ユ壘瀹㈡埛鏁版嵁鐨勫姛鑳姐

鑳屾櫙

棣栧厛锛屾垜浠嬬粛涓浜3灞傛灦鏋勭殑鐞嗚鐭ヨ瘑銆傜畝鍗曡鏄庯細浠涔堟槸3灞傛灦鏋勶紵3灞傛灦鏋勭殑浼樼偣鏄粈涔堬紵

浠涔堟槸3灞傛灦鏋勶紵

3灞傛灦鏋勬槸涓绉嶁滃鎴风锛嶆湇鍔″櫒鈥濇灦鏋勶紝鍦ㄦ鏋舵瀯涓敤鎴锋帴鍙o紝鍟嗕笟閫昏緫锛屾暟鎹繚瀛樹互鍙婃暟鎹闂璁捐涓虹嫭绔嬬殑妯″潡銆備富瑕佹湁3涓眰闈紝绗竴灞傦紙琛ㄧ幇灞傦紝GUI灞傦級锛岀浜屽眰锛堝晢涓氬璞★紝鍟嗕笟閫昏緫灞傦級锛岀涓夊眰锛堟暟鎹闂眰锛夈傝繖浜涘眰鍙互鍗曠嫭寮鍙戯紝鍗曠嫭娴嬭瘯銆

涓轰粈涔堣鎶婄▼搴忎唬鐮佸垎涓3灞傦紝鎶婄敤鎴锋帴鍙e眰锛屽晢涓氶昏緫灞傦紝鏁版嵁璁块棶灞傚垎绂绘湁璁稿鐨勪紭鐐广

鍦ㄥ揩閫熷紑鍙戜腑閲嶇敤鍟嗕笟閫昏緫缁勪欢锛屾垜浠凡缁忓湪绯荤粺涓疄鐜版坊鍔狅紝鏇存柊锛屽垹闄わ紝鏌ユ壘瀹㈡埛鏁版嵁鐨勭粍浠躲傝繖涓粍浠跺凡缁忓紑鍙戝苟涓旀祴璇曢氳繃锛屾垜浠彲浠ュ湪鍏朵粬瑕佷繚瀛樺鎴锋暟鎹殑椤圭洰涓娇鐢ㄨ繖涓粍浠躲

绯荤粺姣旇緝瀹规槗杩佺Щ锛屽晢涓氶昏緫灞備笌鏁版嵁璁块棶灞傛槸鍒嗙鐨勶紝淇敼鏁版嵁璁块棶灞備笉浼氬奖鍝嶅埌鍟嗕笟閫昏緫灞傘傜郴缁熷鏋滀粠鐢⊿QL Server瀛樺偍鏁版嵁杩佺Щ鍒扮敤Oracle瀛樺偍鏁版嵁锛屽苟涓嶉渶瑕佷慨鏀瑰晢涓氶昏緫灞傜粍浠跺拰GUI缁勪欢

绯荤粺瀹规槗淇敼锛屽亣濡傚湪鍟嗕笟灞傛湁涓涓皬灏忕殑淇敼锛屾垜浠笉闇瑕佸湪鐢ㄦ埛鐨勬満鍣ㄤ笂閲嶈鏁翠釜绯荤粺銆傛垜浠彧闇瑕佹洿鏂板晢涓氶昏緫缁勪欢灏卞彲浠ヤ簡銆

搴旂敤绋嬪簭寮鍙戜汉鍛樺彲浠ュ苟琛岋紝鐙珛鐨勫紑鍙戝崟鐙殑灞傘

浠g爜

杩欎釜缁勪欢鏈3灞傦紝绗竴涓眰鎴栬呯О涓篏UI灞傜敤form瀹炵幇锛屽彨鍋欶rmGUI銆傜浜屽眰鎴栬呯О涓哄晢涓氶昏緫灞傦紝鍙仛BOCustomer锛屾槸Bussniess Object Customer鐨勭缉鍐欍傛渶鍚庢槸绗笁灞傛垨鑰呯О涓烘暟鎹眰锛屽彨鍋欴ACustomer锛屾槸Data Access Customer鐨勭缉鍐欍備负浜嗘柟渚挎垜鎶婁笁涓眰缂栬瘧鍒颁竴涓」鐩腑銆

鐢ㄦ埛鎺ュ彛灞

涓嬮潰鏄敤鎴锋帴鍙f垚鐨勪竴娈典唬鐮侊紝鎴戝彧閫夊彇浜嗚皟鐢ㄥ晢涓氶昏緫灞傜殑涓閮ㄥ垎浠g爜銆

//This function get the details from the user via GUI

//tier and calls the Add method of business logic layer.

private void cmdAdd_Click(object sender, System.EventArgs e)

{

try

{

cus = new BOCustomer();

cus.cusID=txtID.Text.ToString();

cus.LName = txtLName.Text.ToString();

cus.FName = txtFName.Text.ToString();

cus.Tel= txtTel.Text.ToString();

cus.Address = txtAddress.Text.ToString();

cus.Add();

}

catch(Exception err)

{

MessageBox.Show(err.Message.ToString());

}

}

//This function gets the ID from the user and finds the

//customer details and return the details in the form of

//a dataset via busniss object layer. Then it loops through

//the content of the dataset and fills the controls.

private void cmdFind_Click(object sender, System.EventArgs e)

{

try

{

String cusID = txtID.Text.ToString();

BOCustomer thisCus = new BOCustomer();

DataSet ds = thisCus.Find(cusID);

DataRow row;

row = ds.Tables[0].Rows[0];

//via looping

foreach(DataRow rows in ds.Tables[0].Rows )

{

txtFName.Text = rows["CUS_F_NAME"].ToString();

txtLName.Text = rows["CUS_L_NAME"].ToString();

txtAddress.Text = rows["CUS_ADDRESS"].ToString();

txtTel.Text = rows["CUS_TEL"].ToString();

}

}

catch (Exception err)

{

[8]

鎵撳嵃 | 鏀惰棌姝ら〉 |  鎺ㄨ崘缁欏ソ鍙 | 涓炬姤
涓婁竴绡 涓嬩竴绡
 

璇勫垎锛0

鍙戣〃璇勮
鏌ョ湅鍏ㄩ儴鍥炲銆愬凡鏈0浣嶇綉鍙嬪彂琛ㄤ簡鐪嬫硶銆