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

简介:

  上一期为大家介绍了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,这个大家一定知道,我就不多介绍了,调用方法名称与方式与以上介绍的都一样。

    至此为止,数据访问层已经完全介绍完成,在下一讲,我们将开始讲解如何进行日志操作。


本文转自Aicken(李鸣)博客园博客,原文链接:http://www.cnblogs.com/isline/archive/2010/04/22/1717860.html,如需转载请自行联系原作者

相关文章
|
9月前
|
API C++ Windows
Visual C++运行库、.NET Framework和DirectX运行库的作用及常见问题解决方案,涵盖MSVCP140.dll丢失、0xc000007b错误等典型故障的修复方法
本文介绍Visual C++运行库、.NET Framework和DirectX运行库的作用及常见问题解决方案,涵盖MSVCP140.dll丢失、0xc000007b错误等典型故障的修复方法,提供官方下载链接与系统修复工具使用指南。
2014 2
|
C++ Windows
.NET Framework安装不成功,下载`NET Framework 3.5`文件,Microsoft Visual C++
.NET Framework常见问题及解决方案汇总,涵盖缺失组件、安装失败、错误代码等,提供多种修复方法,包括全能王DLL修复工具、微软官方运行库及命令行安装等,适用于Windows系统,解决应用程序无法运行问题。
1627 3
|
9月前
|
开发框架 安全 .NET
Microsoft .NET Framework 3.5、4.5.2、4.8.1,适用于 Windows 版本的 .NET,Microsoft C Runtime等下载
.NET Framework是Windows平台的开发框架,包含CLR和FCL,支持多种语言开发桌面、Web应用。常用版本有3.5、4.5.2、4.8.1,系统可同时安装多个版本,确保软件兼容运行。
2096 0
Microsoft .NET Framework 3.5、4.5.2、4.8.1,适用于 Windows 版本的 .NET,Microsoft C Runtime等下载
|
10月前
|
C++
提示缺少.NET Framework 3.5 安装错误:0x80070002、0x800F0950\0x80004002
.NET Framework常见问题及解决方法汇总,
1093 0
|
C++ Windows
WindowsDLL修复专家,MSVCP**、DLL修复vcruntime**、DLL修复、`.Net Framework`缺失、DirectX类DLL修复、VC运行库修复
Windows DLL修复专家是一款专为解决因DLL文件缺失、版本错误导致的软件或游戏无法运行问题的系统工具。它支持一键扫描和修复各类DLL异常,涵盖MSVCP、vcruntime、.NET Framework、DirectX等多种常见问题。具备自动检测、备份还原功能,确保修复过程安全可靠。适用于软件报错、系统异常及新系统适配场景,降低用户手动修复门槛,提升系统稳定性与兼容性。
474 3
|
11月前
.NET Framework 3.5离线安装包合集下载
本文介绍了如何获取和安装.NET Framework运行库离线合集包。用户可通过提供的链接下载安装包,安装过程简单,按提示逐步操作即可完成。安装时可选择所需版本,工具会自动适配架构,无需手动判断,方便高效。
7633 0
|
人工智能 芯片
D1net阅闻|OpenAI员工疯狂暗示,内部已成功开发ASI?被曝训出GPT-5但雪藏
D1net阅闻|OpenAI员工疯狂暗示,内部已成功开发ASI?被曝训出GPT-5但雪藏
|
SQL 小程序 API
如何运用C#.NET技术快速开发一套掌上医院系统?
本方案基于C#.NET技术快速构建掌上医院系统,结合模块化开发理念与医院信息化需求。核心功能涵盖用户端的预约挂号、在线问诊、报告查询等,以及管理端的排班管理和数据统计。采用.NET Core Web API与uni-app实现前后端分离,支持跨平台小程序开发。数据库选用SQL Server 2012,并通过读写分离与索引优化提升性能。部署方案包括Windows Server与负载均衡设计,确保高可用性。同时针对API差异、数据库老化及高并发等问题制定应对措施,保障系统稳定运行。推荐使用Postman、Redgate等工具辅助开发,提升效率与质量。
640 0
|
Linux API C#
基于 .NET 开发的多功能流媒体管理控制平台
基于 .NET 开发的多功能流媒体管理控制平台
358 9