freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

課程設(shè)計(jì)---物流配送管理系統(tǒng)(參考版)

2025-06-08 16:13本頁(yè)面
  

【正文】 吉林省經(jīng)濟(jì)管理干部學(xué)院 吉林經(jīng)濟(jì)職業(yè)技術(shù)學(xué)院 團(tuán)隊(duì)成員成績(jī) 學(xué)號(hào) 姓名 成績(jī) 11010601006 高海丹 11010601031 王秋紅 11010601022 宋飛 11010601009 矯美麗 11010601019 牟天琪 11010601004 崔志偉 11010601034 張強(qiáng) 11010601038 趙映寰 11010601025 孫博 教師評(píng)價(jià) 企業(yè) 教師評(píng)價(jià) : 指導(dǎo)教師: 日期: 校內(nèi)教師評(píng)價(jià): 指導(dǎo)教師: 日期: 。 在 我們小組 們不懈的努力下,終于完成了課程設(shè)計(jì),但是其中也會(huì)有一部分代碼冗長(zhǎng)復(fù)雜,在系統(tǒng)異常處理方面也做得不夠,希望在今后的學(xué)習(xí)中,我們不斷提高和完善。業(yè)務(wù)邏輯層是將數(shù)據(jù)層的結(jié)果集進(jìn)行判斷 ,并將結(jié)果返回到表現(xiàn)層,從而實(shí)現(xiàn)增、刪、改、查等功能。三層架構(gòu)分別是數(shù)據(jù)層、業(yè)務(wù)層,表現(xiàn)層。 Public listT ExecuteT,M (CommandType type, string mand, SqlParameter[] para) where M : IRowMapper, new() //要求 M 所代表的類必須繼承接口 IRowMapper,且必須具備可實(shí)例化能力 where T : new() //要求 T所代表的類必須具備實(shí)例化的能力 這樣, Execute方法才算是完成了。 } 至此, Execute 方法就 算是完成了,但目前 我們小組 們發(fā)現(xiàn),整個(gè)方法被 VS IDE 標(biāo)記為紅色浪線,表示代碼依然存在問題,而整個(gè)問題,就是 我們小組 們所使用的泛型類 T和 M并沒有滿足某種條件。 (tmp)。 foreach (DataRow dr in ) { IRowMapper row=new M()。 DataTable dt = new DataTable()。 OpenDatabase(type, mand, para)。 } 再次碰到這種情況, ****所填寫 的位置必須是跟 T類型相關(guān)的 T***RowMapper。 (tmp)。 (dt)。 吉林省經(jīng)濟(jì)管理干部學(xué)院 吉林經(jīng)濟(jì)職業(yè)技術(shù)學(xué)院 = m。 } Public class TAreaRowMapper: IRowMapper {?? } 繼續(xù)回到 Execute部分: Public listT ExecuteT (CommandType type, string mand, SqlParameter[] para) { ListT list = new ListT()。由于繼承類時(shí) 我們小組 們需要為父類寫 SetData方法,這不現(xiàn)實(shí),因此采用通過接口的 方式來(lái)定義這個(gè)規(guī)則,讓所有 RowMapper類都繼承這個(gè)接口。 在進(jìn)行這個(gè)類的建立過程中, 我們小組 們發(fā)現(xiàn)了無(wú)論這個(gè)類的類名是什么,返回值是什么,在這個(gè)類中只有一個(gè)方法,而且參數(shù)是相同的,這就如同是一個(gè)不成文的規(guī)定是一樣的。 } } (其他同理 ) SetData方法主要的目的是將 DataRow的數(shù)據(jù)轉(zhuǎn)換為數(shù)據(jù)模型,并為模型的屬性賦值。 = dr[AreaDesc].ToString()。 = new Guid(dr[AreaID].ToString())。 因?yàn)楫?dāng)前的方法時(shí)寫在 DatabaseControl類中,該類的明確定義是只允許包含與數(shù)據(jù)庫(kù)有關(guān)的操作,而為對(duì)象賦值,并不完全屬于數(shù)據(jù)庫(kù)有關(guān)的操作,因此需要為每個(gè)數(shù)據(jù)類型再定義一個(gè)類,名稱可以為 RowMapper,既為這個(gè)數(shù)據(jù)模型的屬性賦值。 } return list。 foreach (DataRow dr in ) { T tmp = SetData(dr)。 DataTable dt = new DataTable()。 OpenDatabase(type, mand, para)。 } } } 通過泛型方法解決 Execute的通用問題,徹底解決代碼冗余 現(xiàn)在 我們小組 們能夠看到,在上端代碼中加粗的代碼段使用了相同的類 TArea。 } Close()。 T t = (T)(tmp)。 (dt)。 = m。 } public ListT ExecuteM, T(CommandType type, string mand, [] para) where M : IRowMapper, new() where T : new() { ListT list = new ListT()。 Close()。 } public int Execute(CommandType type, string mand, SqlParameter[] para) { OpenAndCreateComm(type ,mand ,para )。 foreach (SqlParameter tmp in para) { (tmp)。 = type。 ()。 private SqlDataAdapter adap = new SqlDataAdapter()。 private SqlConnection conn = new SqlConnection()。 namespace LogisticsDAL { public class DatabaseControl { private string Connstr = Data Source=(local)。 using 。 using 。如果 我們小組 們返回的是 Area 的集合,可以寫成如下的代碼: sing System。 這三個(gè) list 不但具備了數(shù)組長(zhǎng)度的動(dòng)態(tài)增長(zhǎng),還要求了數(shù)據(jù)類型的統(tǒng)一 (當(dāng)然, ListObject不在考慮范圍之內(nèi),因?yàn)? Object 是所有類型的基類) 使用泛型集合: foreach(int tmp in list){} foreach(string tmp in list){} foreach(Class1 tmp in list){} 可見,使用泛型集合和使用普通的數(shù)組沒有區(qū)別,而且泛型還為 我們小組 們統(tǒng)一了數(shù)據(jù)類型。 (true)。 (3)。 ListClass1 list = new ListClass1()。 (true)。 (3)。 Liststring list = new Liststring()。 //這時(shí)程序會(huì)提示語(yǔ)法錯(cuò)誤,因?yàn)橐?list的集合必須是 Class1的對(duì)象。 //這時(shí)程序會(huì)提示語(yǔ)法錯(cuò)誤,因?yàn)橐?list的集合必須是 Class1的對(duì)象。 (new Class1())。 //這時(shí)程序會(huì)提示語(yǔ)法錯(cuò)誤,因?yàn)橐?list的集合必須是 string類型。 //這時(shí)程序會(huì)提示語(yǔ)法錯(cuò)誤,因?yàn)橐?list的集合必須是 string類型。 (1)。 //這時(shí)程序會(huì)提示語(yǔ)法錯(cuò)誤,因?yàn)橐?list的集合必須是 int類型。 (3)。 Listint list = new Listint()。 如果這時(shí)對(duì) array對(duì)象中的元素進(jìn)行加和,并得到結(jié)果時(shí),就會(huì)出現(xiàn)數(shù)據(jù)類型不統(tǒng)一的異常錯(cuò)誤。 (2)。 當(dāng) 我們小組 們需要對(duì)數(shù)組 長(zhǎng)度的動(dòng)態(tài)增長(zhǎng),對(duì)于這種定義方式是不可行的,這時(shí)就會(huì)想到 Array、ArrayList。 //這時(shí)程序會(huì)提示語(yǔ)法錯(cuò)誤,因?yàn)橐?list的集合必須是 int類型。 (3)。 Listint list = new Listint()。 如果這時(shí)對(duì) array對(duì)象中的元素進(jìn)行加和,并得到結(jié)果時(shí) ,就會(huì)出現(xiàn)數(shù)據(jù)類型不統(tǒng)一的異常錯(cuò)誤。 (2)。 當(dāng) 我們小組 們需要對(duì)數(shù)組長(zhǎng)度的動(dòng)態(tài)增長(zhǎng),對(duì)于這種定義方式是不可行的,這時(shí)就會(huì)想到 Array、ArrayList。 所謂泛型是一種特殊類型,它把指定類型的工作推遲到客戶代碼并實(shí)例化的類型。 } 利用泛型集合,將結(jié)果集返回到業(yè)務(wù)邏輯層 到目前為止, 我們小組 們只是將 Execute在執(zhí)行時(shí),返回影響行數(shù)的這個(gè)模塊完成了,接下來(lái),該考慮如何處理 Execute返回結(jié)果集的部分。 Close()。 Public int Execute(CommandType type, string mand, SqlParameter[] para) { OpenDatabase(type, mand, para)。 foreach (SqlParameter tmp in para) { (tmp)。 = type。 } m = new SqlCommand()。需要注意的是 SqlCommand 所接受的 Parameter 并不是數(shù)組,而是SqlParameterCollection 對(duì)象,因此 我們小組 們需要將 SqlParameter 數(shù)組對(duì)象添加到這個(gè) Collection 中。 } pri
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1