小菜鸟一步步打造图书馆外挂之四:数据访问(一)

     该系统数据量不大,正常情况下不到十条记录,再加上一些用户的配置,所以用XML文件来存储信息比较方便,以后也可能不会放到数据库中,所以在设计数据访问时没有什么设计,只是提供一些增删改的方法。
     在解决方案LibraryHelper中添加工程DAL,添加一个类BookXML,对保存图书信息的XML文件的操作。把命名空间改为Libraryhelper.DAL,引入上一小节建好的Model工程。
     创建名为BookXML.xml的XML文件用来保存从图书馆网站上读取下来的数据,结构如下:

Code

     分别保存了书名,外借时间,应还时间,续借次数,图书ISBN编号等信息。把该文件放到本工程的\bin\Debug目录下,读取时不用写路径,而且项目打包时比较方便,整个项目就放在一个文件夹里。
     现在来写BookXML类中的方法,该类中有一个对象是用来对XML文件的操作的,可以用DataSet,但是这种做法用一个不好,就是当文件中没有记录时就出错,必须要保持至少有一条记录,如下:

Code

如上代码当没有记录时到第12行就出错,因为当XML文件中没有记录时是这样的:

<?xml version="1.0" standalone="yes"?>
<Books>
</Books>

没有book标签,所以它还对book的引用就出错,所以采用DOM解析,这种方法操作XML文件很方便,如下,我们写了一些增删改方法:

Code

 

     我们再建一个UserXML的类,把它的命名空间也改成LibraryHelper.DAL,再建一个UserXML.xml的文件,保存用户登录到图书馆的账号和密码,一样放到bin\Debug目录下,在UserXML类里也写了些简单的方法对UserXML.xml文件的操作,如下:
UserXML.xml:

Code

UserXML类:

Code

 

依次再加一个对宽带连接账号信息的xml文件和对该文件操作的类如下:
ADSLXML.xml:

Code
对该文件操作的类UserXML:
Code

 同样再那一个xml文件用来保存用户的一些配置信息和对该文件操作的类如下:
SettingXML.xml:

Code

warningDay是说当还剩n天还书时,当n<100时该书就进入警戒范围,用户开机时就给出提示
startType是说系统每次计算机启动时都启动还是每天只启动一次,0为每次都启动,1为每天只能启动一次,所以下面lastStartTime就保存了上一次的登录时间
disConnectionADSL是说当退出该系统时是否自动断开宽带连接,0为断开,1为不断开
对该文件操作的类SettingXML中的一些方法如下:

Code

 

     注意到对ADSLXML.xml和SettingXML.xml文件的操作时我们并没有封装到对象,而是用方法每个属性都分开来取,是因为这些可能在不同一个地方使用,这样单个写用得更方便.

 

 

posted @ 2009-03-16 21:27  Done  阅读(612)  评论(0编辑  收藏  举报