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

正文內(nèi)容

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

2025-01-20 02:18本頁面
  

【正文】 團(tuán)隊(duì)成員成績學(xué)號姓名成績11010601006高海丹11010601031王秋紅11010601022宋飛11010601009矯美麗11010601019牟天琪11010601004崔志偉11010601034張強(qiáng)11010601038趙映寰11010601025孫博教師評價(jià)企業(yè)教師評價(jià): 指導(dǎo)教師: 日期:校內(nèi)教師評價(jià): 指導(dǎo)教師: 日期:。在我們小組們不懈的努力下,終于完成了課程設(shè)計(jì),但是其中也會有一部分代碼冗長復(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)。 = 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í),因此采用通過接口的方式來定義這個(gè)規(guī)則,讓所有RowMapper類都繼承這個(gè)接口。在進(jìn)行這個(gè)類的建立過程中,我們小組們發(fā)現(xiàn)了無論這個(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ù)庫有關(guān)的操作,而為對象賦值,并不完全屬于數(shù)據(jù)庫有關(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ù)組長度的動態(tài)增長,還要求了數(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í)程序會提示語法錯(cuò)誤,因?yàn)橐髄ist的集合必須是Class1的對象。 //這時(shí)程序會提示語法錯(cuò)誤,因?yàn)橐髄ist的集合必須是Class1的對象。 (new Class1())。 //這時(shí)程序會提示語法錯(cuò)誤,因?yàn)橐髄ist的集合必須是string類型。 //這時(shí)程序會提示語法錯(cuò)誤,因?yàn)橐髄ist的集合必須是string類型。 (1)。 //這時(shí)程序會提示語法錯(cuò)誤,因?yàn)橐髄ist的集合必須是int類型。 (3)。 Listint list = new Listint()。 如果這時(shí)對array對象中的元素進(jìn)行加和,并得到結(jié)果時(shí),就會出現(xiàn)數(shù)據(jù)類型不統(tǒng)一的異常錯(cuò)誤。 (2)。 當(dāng)我們小組們需要對數(shù)組長度的動態(tài)增長,對于這種定義方式是不可行的,這時(shí)就會想到Array、ArrayList。 //這時(shí)程序會提示語法錯(cuò)誤,因?yàn)橐髄ist的集合必須是int類型。 (3)。 Listint list = new Listint()。 如果這時(shí)對array對象中的元素進(jìn)行加和,并得到結(jié)果時(shí),就會出現(xiàn)數(shù)據(jù)類型不統(tǒng)一的異常錯(cuò)誤。 (2)。 當(dāng)我們小組們需要對數(shù)組長度的動態(tài)增長,對于這種定義方式是不可行的,這時(shí)就會想到Array、ArrayList。所謂泛型是一種特殊類型,它把指定類型的工作推遲到客戶代碼并實(shí)例化的類型。}利用泛型集合,將結(jié)果集返回到業(yè)務(wù)邏輯層到目前為止,我們小組們只是將Execute在執(zhí)行時(shí),返回影響行數(shù)的這個(gè)模塊完成了,接下來,該考慮如何處理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ù)組,而是SqlParameterCollectio
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1