- 相關(guān)推薦
數(shù)據(jù)庫訪問筆試經(jīng)驗
導(dǎo)讀:本文想借用故事的方式來說一下ADO.net的工作方式,
數(shù)據(jù)庫訪問筆試經(jīng)驗
。雖然現(xiàn)在都ORM了,但是了解一下ADO.net還是有必要的。以下是由應(yīng)屆畢業(yè)生網(wǎng)小編J.L為您整理推薦的數(shù)據(jù)庫訪問筆試經(jīng)驗,歡迎參考閱讀。在茫茫的大海上有許多的島,其中一個島的名字叫做“應(yīng)用程序島”。這座島上商業(yè)非常發(fā)達,高樓大廈、店鋪林立。但是島的面積不夠大,沒有地方建立倉庫。所以市長決定,把臨近的一座小島開發(fā)出來,專門作為數(shù)據(jù)倉庫來使用,這座島的名字就叫“數(shù)據(jù)庫島”。
市長在數(shù)據(jù)庫島上面建立了一個MSSQL數(shù)據(jù)庫,這樣各個商場、超市就可以把自己的貨物放進去了。兩個島相鄰很近,為了便于運輸,所以直接在兩個島之間建立了五座大橋。并且成了一個“數(shù)據(jù)訪問池”的部門來專門管理這五座橋。
有一個叫command的家伙很聰明,覺得商機來了,于是他就成立了一家Command物流公司,專門負責(zé)兩座島之間的貨物運輸。物流公司成立了幾個下屬部門:Connection、DataReader。Connection負責(zé)與連接池的聯(lián)系,申請大橋的臨時使用權(quán),并且還要提供車輛。 DataReader負責(zé)裝卸貨物。
好了,萬事具備只欠東風(fēng)。物流公司成了好了之后就坐等客戶上門了。不久來了一位客戶,是島上的一個書店,他們購進了一批圖書,需要送到數(shù)據(jù)庫島的倉庫里。
【添加記錄的情況】
Command接到了這個任務(wù)很高興,終于開張了。領(lǐng)導(dǎo)當(dāng)然不能自己親自去干活了,于是派出了明星員工cm007來負責(zé)這個任務(wù)。
SqlCommand cm007 = new SqlCommand();
Cm007從書店那里得到了指令(就是SQL語句)和貨物,來到Connection部門。
cm007.CommandText = "";
Connection部門派出了得力員工cn007
SqlConnection cn007 = new SqlConnection();
cm007.Connection = cn007;
cn007開著車,帶著cm007來到了大橋,由cn007和連接池聯(lián)系,想要申請一座大橋的臨時使用權(quán)。
cn007.Open();
連接池得到了這個申請之后,查看了一下大橋的使用情況,現(xiàn)在五座大橋都沒有人使用,于是把001號大橋的使用權(quán)交給了cn007。這個時候,這座001號大橋就由cm007他們獨占了,其他任何人都不可以使用。而且是按照獨占時間來收取費用的。
一行人通過001號大橋來到了數(shù)據(jù)庫,cm007把指令交給了數(shù)據(jù)庫管理員開始交貨。數(shù)據(jù)庫管理員按照指令,把貨物放到了指定的位置。辦好之后cm007帶著數(shù)據(jù)庫的確認證明,從大橋返回到了應(yīng)用程序島。離開大橋后,cn007又給連接池發(fā)了一個申請。
cn007.Close();
連接池得到了這個申請后,收回了001號大橋的使用權(quán),這樣其他人就又可以使用這個大橋了。
cm007一行人來到了書店,把數(shù)據(jù)庫管理員的證明交給了書店,客戶很滿意,這個任務(wù)也就完成了;氐轿锪鞴窘徊。
cn007.Dispose();
cm007.Dispose();
command很高興,首戰(zhàn)告捷,以后的生意一定會很紅火呀。
【提取(查詢)記錄,向上層直接返回DataReader的情況】
第二天,那家書店又來找command,要從數(shù)據(jù)庫島提五本書過來。又來生意了,太好了,于是又派出了cm007和cn007。不過這次和昨天不太一樣,昨天是送貨到倉庫,今天是從倉庫提貨,
資料共享平臺
《數(shù)據(jù)庫訪問筆試經(jīng)驗》(http://m.dameics.com)。這次還需要DataReader派裝卸工來配合。輕車熟路,cn007開著車帶著大家來到了大橋,cn007申請了一座大橋的使用權(quán),來到了數(shù)據(jù)庫島,cm007把指令交給了數(shù)據(jù)庫管理員開始提貨。不過這次卻遇到了一點小問題,運輸車的運載量的太小了,一次只能運一本書(一條記錄)?墒沁@次卻需要提五本書(五條記錄),沒辦法,只好多跑幾趟了。
帶上一本書(一條記錄),來到了書店,書店老板很高興,這么快就到了呀,趕快卸貨上架吧。咦等等,怎么只有一本書呀。Cm007只好解釋,我們的車運載量太小了,一次只能運一條記錄,不過速度還是很快的呀。
書店老板想了想,也湊合了,那你們趕快運下一條記錄吧。
如是這般,折騰了五趟,總算把貨物全都運完了。
“等等”,cn007說,“大橋的使用權(quán)還沒有交回去呢。”于是大家又來到了橋頭,把使用權(quán)交了回去。
最后回到物流公司交差。
【改進,向上層返回DataTable】
這回command可高興不起來了。大橋是按照占用時間來收費的,這么來回折騰,大橋的占用時間明顯變長了,這就增加了成本呀。另外現(xiàn)在汽油這么貴,來回折騰燒的可都是錢呀,就不能跑一趟多運點嗎?
于是command把大家召集過來一起商量這個事情。cn007說,大橋這一段沒有什么辦法可想了,一次只能運出來一條記錄,這個也不知道是誰規(guī)定的,我們也改不了。不過從橋頭到客戶那里我們倒是可以想想辦法,我有一個朋友,DataAdapter,他們也許會有辦法。Command聽了也沒有什么其他的方法,那就把DataAdapter請過來,一起商量一下吧。
第二天,DataAdapter過來了,也帶來了他的解決方案。其實也很簡單,他們公司可以提供集裝箱(就是DataTable),在橋頭等待,貨物運到的時候由DataReader裝到集裝箱里,然后立刻返回運第二批貨物。等需要的貨物全都裝完了之后,在開著集裝箱運到客戶那里。
SqlDataAdapter da007 = new SqlDataAdapter();
DataTable dt007 = new DataTable();
da007.Fill(dt007);
這樣就節(jié)省了大橋的占用時間,節(jié)省了成本。到客戶的這段路程,集裝箱跑一趟就可以了,省油。
這個方案不錯,command欣然接受。
過了幾天,書店又要提一批圖書,這次采用了集裝箱的方案,果然大大節(jié)省了成本,客戶也很滿意,雖然一開始要等待比較長的時間,但是好在一次性就可以得到全部的貨物。
【多種返回類型:DataRow、object[]、object】
有一天又發(fā)現(xiàn)了一個新問題,書店只要一本書。就一本書,也弄一個集裝箱?太浪費了吧。怎么辦?干脆直接用DataRow吧。實在不行用object[]。對于一條記錄也足夠用了。
【實體類開始登場】
于是物流公司的生意是越來越紅火了。有一家大型超市也找到了command,希望能夠為超市運輸貨物。這可是一比大買賣呀,command當(dāng)然是很高興。大家一拍即合。
一開始合作的也很愉快,但是過了幾天出現(xiàn)了一點小問題。
【DataTable的缺點】
超市的老板找到了command,“你們的集裝箱確實挺好,但是有一個小問題呀。他們的樣子都是一模一樣的,只能通過外面的標(biāo)簽來區(qū)分里面的貨物,這個太不方便了,而且還容易出錯,昨天本來想運一批‘微波爐’,結(jié)果標(biāo)簽寫錯了,寫成了‘光波爐’。幸好發(fā)現(xiàn)的及時,否則就賠大發(fā)了。你們能不能想個好點的辦法呢?”。
command心想:“你們把標(biāo)簽寫錯了,和我有什么關(guān)系呢?”不過客戶就是上帝呀,得罪不起,還得想個辦法解決一下。
于是又把大家都召集過來一起商議。只是這次并沒有上次那么順利,想了不少辦法,但是都不理想。正在一籌莫展的時候,面向?qū)ο蠊镜耐其N員來了。
【數(shù)據(jù)庫訪問筆試經(jīng)驗】相關(guān)文章:
技術(shù)能力的筆試經(jīng)驗03-13
海通證券筆試經(jīng)驗05-25
中國南山集團筆試經(jīng)驗09-29
精彩筆試經(jīng)驗系列03-13
工行校招筆試經(jīng)驗11-07
農(nóng)行筆試經(jīng)驗總結(jié)11-16
經(jīng)驗客服筆試題讓你思維靈活12-15