这一次作得是图书管理系统。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)