您的位置:首页 > 编程语言 > ASP

使用IsLine FrameWork开发ASP.NET程序之三—使用DataProvider 访问数据(下)

2010-04-22 10:52 701 查看

上一期为大家介绍了DataProvider中对SQL SERVER与Oracle数据库的操作,这一期将为大家介绍对文件系统的支持。 在DataProvider中,不仅支持对SQL SERVER与Oracle的操作,还支持对文件的操作。对于文件目前内置3中支持对象:XML、TEXT、CONFIG文件,分别位于类库XMLProvider、TextProvider、SuitConfigProvider中,大家可以自己调用,文件操作大多使用静态操作。 1.对config文件的操作 这里还要介绍一SuitConfigProvider类库中的GetItem、GetSection、AppendItem、RemoveElement方法,这几个方法可以快速获得we.config中的Item、节点内容,以及增加、移除节点,例如有个Item信息如下: <add key="NameABC" value="test " /> 使用SuitConfigProvider.GetItem("NameABC ") 语句就可以立即获得该Item内容,SuitConfigProvider类中的方法实现为静态,用户可以直接调用. 2.对文本文件操作: 项目中有很多时候需要对文本文件进行操作,可能会涉及到文件的创建、内容追加、删除等,在IsLine类库中封装了这些操作,使用者可以方便调用方法实现这些功能,IsLine类库会自动进行错误判断、资源调优等操作。方法说明如下: ● static string GetContent(string Fileinfo):该方法具有2次重载,获得文件内容 ● static bool CreateFile(string FileInfo):该方法创建一个文件,参数就是文件路径与文件名 ● static bool AppendFile(string str, string FileInfo):该方法具有2次重载,追加文件内容 以上的方法很常用,并且已经经过一些优化处理,比如在使用者调用AppendFile方法时,IsLine类库会自动判断所操作的文件是否存在,如果不存在会首先创建一个文件,然后在进行内容追加,这就避免了一些因为文件不存在而造成的错误。 3.对XML文件操作: XML文件是各位编写程序中最常用的一种文件了,它以简明的结构化体制深受大家的喜爱,IsLine类库封装了对于这种文件的日常操作,以下是方法列表。 ● static List<Hashtable> GetContent(string FileInfo, string SingleNode):该方法具有2次重载,获得文件内容。传入文件为文件路径和根节点名称,每个节点信息储存在HashTable中,并以泛型List<Hashtable>形式返回 ● static bool CreateFile(string SingleNode, string FileInfo):该方法创建一个文件,传入文件为文件路径和根节点名称 ● static bool AppendFile(string SingleNode, string Element, List<Hashtable> Lht, string FileInfo):该方法2次重载,追加文件内容,传入文件为根节点内名称、追加节点名称、追加内容结构和追加文件信息。其中追加内容结构为List<Hashtable>,Hashtable的键名为追加后XML的节点名。 另外,在Web.config中还可以使用一些支援信息,对DataProvider进行配置,这些配置决定了用于反射的数据库工厂的位置、多数据库连接信息等。 支援信息(选择配置)如下: 键名:IsLine.Provider.DataProvider.CfgDllName 作用:反射的数据库工厂DLL位置 键名:IsLine.Security.Configuration.TokenKey 作用:加密使用的种子(字符串) 键名:IsLine.Data.Configuration.DBConnectString 作用:数据库连接信息 键名:IsLine.Data.Configuration.TextProviderFileInfo 作用:默认文件位置 键名:IsLine.Data.Configuration.SqlServerConnectString 作用:SQL数据库连接信息 键名:IsLine.Data.Configuration.OracleConnectString 作用:Oracle数据库连接信息 关于IsLine.Data.ContainerDefiner命名空间的缓存支援: 这里要提一下该命名空间下类的缓存支援信息,这些信息位于IsLine.Data.ContainerDefiner命名空间下。 该类共实现 ISqlContainer, IOracleContainer, IFileContainer, IDisposable四个接口,包括了常见的ADO.Net数据对象,例如DataSet、Reader等,利用OracleProvider或SqleProvider中相关方法获得的数据对象,可以直接赋值给ContainerDefine类下的对应对象,ContainerDefine会将对象缓存。 请大家注意,在声明ContainerDefine时,构造函数有2个参数,第一个是开启HttpRuntime缓存,第二个参数是缓存的名字,这样cd中的DataSet对象被赋值后,会自动缓存,下次在调用cd.DataSet对象时,将自动从缓存中读取,不需要OracleProvider().ExecuteDataSet()方法重新取数据了,目前缓存支持.Net运行时缓存和上下文缓存,当然缓存策略默认是关闭的,当构造函数接收到上述参数时,才会开启缓存。 有关缓存的详细说明,请参看后面的文章“IsLine.HttpContent.HttpContentProvider命名空间系列” 。 DataProvider没介绍的内容还有很多,这里就不一一介绍了,关于DataProvider Database方法大全,由于篇幅较长,这里就不占用宝贵的版面了,有兴趣的朋友可以通过访问作者博客获得相关信息。 另外,关于使用这个命名空间处理数据事务,可以对其进行扩展,但须遵循一系列的接口契约,为其提供数据库工厂,按照以下方式部署该工厂的库文件,这样,ILFW运行前会使用私有方法DbProviderFormating()对用户提供的工厂进行反射。用户提供的规范如下: ● DLL部署路径:IsLineFrameWork\IsLine.Provider.DataProvider.CfgDllName,其中IsLine.Provider.DataProvider.CfgDllName为web.config配置的dll名称。 ●工厂所在命名空间:IsLine.Provider.DataProvider ●工厂类名称: DBFactory ●方法类型DbProviderFactory ●方法名称:GetDbProvider() DataProvider中还有一个类“DBProvider”,这个Provider可以不指明是SQLSERVER还是Oracle数据库或是其他数据库,你需要提前遵守上文中提到的相关接口契约,实现为Configution.dll,并放置于约定位置(这个位置在web.config中配置),程序就会自动反射并使用其中的方法了。将来你更改数据库时,只需要更换这个DLL就可以了,不需要修改主程序。 “DBProvider”还封装了微软的DbProviderFactory,这个大家一定知道,我就不多介绍了,调用方法名称与方式与以上介绍的都一样。 至此为止,数据访问层已经完全介绍完成,在下一讲,我们将开始讲解如何进行日志操作。 此文已在《软件报》同步发布,任何个人媒体不得转载。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐