這一次作得是圖書管理系統。node
下面是功能框圖sql
下面是流程圖架構
實際在作這個項目的時候根據相應的實際狀況對功能流程等等作了一些小小的改變。ide
下面是一些值得記一筆的地方。ui
一、借用系統自帶的導航控件(BindingNavigator)spa
自定義數據來源---先定義一個BindingSource對象,再設置這個對象的datasource屬性(須要綁定的數據源).設計
須要注意的一點是判斷Bindingsource是否爲空是經過他的list的count屬性來判斷的,他自帶的count屬性我理解的是數據源的個數。excel
之因此使用這個控件是由於Bindingsource對象裏面自帶move(next、first等),能夠很方便的實現下一頁上一頁等操做。code
二、使用用戶控件和多層架構,第三方控件orm
使用用戶控件能夠大量減小Form的數量,之前沒用過,這一次使用了,感受不錯。
再就是多層架構,說是多層架構,可是我的以爲很簡略粗糙。我寫個人部分的時候個人順序是:先寫datahelper->entity->dal->Ibll->Bll->UI
datahelper和entity是組內通用的,不贅述。在寫dal層的時候因爲不知道ui會使用到那些數據,因此一開始設計的時候,是直接就獲取了所有的數據,後來作到後面發現用不到那麼多東西,沒有規劃好(也許是寫各層順序不對)。之因此設計IBLL層開始是覺得能夠組內複用的,結果,組內都沒作這個工做,以至於咱們的代碼裏面有不少冗餘,原本能夠複用的地方,都沒有去考慮複用(分開我的寫的壞處,沒有充分交流)。不過設計IBLL的好處是能夠省略寫好多代碼(繼承接口直接實現,感受很棒,寫具體 代碼的時候頗有條理)。。。。。。
BLL層大部分沒有作什麼數據處理,直接就返回給ui使用。
UI層我在不少地方原本是該BLL層作得事情,因爲太懶,直接就在UI層處理了,這也是分層的弊端----增長了碼農的工做負擔
第三方控件咱們是直接使用了一個第三方的皮膚包。在找控件的時候我也發現了一些好的資源,待會兒上傳到一併網盤保存
三、讀取Excel
方式與SqlServer時同樣的。下面寫一下不一樣的地方
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path + ";Extended Properties='Excel 8.0;HDR=No;IMEX=1'";
//HDR的YES和NO表示第一行是不是行標題(即無數據)IMEX有0、一、2三種參數分別表示write、read、writeANDread(讀寫權限)
String sql = "SELECT * FROM [Sheet1$]";
//Sheet1是名稱,包括數據域是能夠更改的,這個要參考對excel的單元格操做
四、調用豆瓣提供的API獲取圖書信息
豆瓣提供的API返回的是XML文檔,這裏主要須要作的就是利用XML分析返回的文檔,獲取到相應的數據。
關鍵代碼
1 XmlDocument xml = new XmlDocument(); 2 xml.LoadXml(xmldetail); 3 XmlNamespaceManager nsmgr = new XmlNamespaceManager(xml.NameTable); 4 nsmgr.AddNamespace("db", "http://www.w3.org/2005/Atom"); 5 XmlElement root = xml.DocumentElement; 6 XmlNodeList nodes = root.SelectNodes("/db:entry", nsmgr);
而後就是遍歷nodes了。
附件:http://yunpan.cn/cgnCaG4dPsTbT (提取碼:8ffa)