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

本文涉及的产品
云数据库 RDS SQL Server,基础系列 2核4GB
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
简介:

  上一期为大家介绍了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,如需转载请自行联系原作者

相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS&nbsp;SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/sqlserver
相关文章
|
13天前
|
缓存 算法 安全
精选10款C#/.NET开发必备类库(含使用教程),工作效率提升利器!
精选10款C#/.NET开发必备类库(含使用教程),工作效率提升利器!
45 12
|
11天前
|
Linux API C#
基于 .NET 开发的多功能流媒体管理控制平台
基于 .NET 开发的多功能流媒体管理控制平台
|
11天前
|
Web App开发 前端开发 调度
一款基于 .NET + Blazor 开发的智能访客管理系统
一款基于 .NET + Blazor 开发的智能访客管理系统
|
11天前
|
前端开发 JavaScript C#
基于.NET8+Vue3开发的权限管理&个人博客系统
基于.NET8+Vue3开发的权限管理&个人博客系统
|
11天前
|
网络协议 C#
基于.NET WinForm开发的一款硬件及协议通讯工具
基于.NET WinForm开发的一款硬件及协议通讯工具
|
11天前
|
监控 前端开发 API
一款基于 .NET MVC 框架开发、功能全面的MES系统
一款基于 .NET MVC 框架开发、功能全面的MES系统
|
1月前
|
算法 Java 测试技术
Benchmark.NET:让 C# 测试程序性能变得既酷又简单
Benchmark.NET是一款专为 .NET 平台设计的性能基准测试框架,它可以帮助你测量代码的执行时间、内存使用情况等性能指标。它就像是你代码的 "健身教练",帮助你找到瓶颈,优化性能,让你的应用跑得更快、更稳!希望这个小教程能让你在追求高性能的路上越走越远,享受编程带来的无限乐趣!
104 13
|
2月前
|
传感器 人工智能 供应链
.NET开发技术在数字化时代的创新作用,从高效的开发环境、强大的性能表现、丰富的库和框架资源等方面揭示了其关键优势。
本文深入探讨了.NET开发技术在数字化时代的创新作用,从高效的开发环境、强大的性能表现、丰富的库和框架资源等方面揭示了其关键优势。通过企业级应用、Web应用及移动应用的创新案例,展示了.NET在各领域的广泛应用和巨大潜力。展望未来,.NET将与新兴技术深度融合,拓展跨平台开发,推动云原生应用发展,持续创新。
49 4
|
2月前
|
机器学习/深度学习 人工智能 物联网
.NET 技术:引领未来开发潮流
.NET 技术以其跨平台兼容性、高效的开发体验、强大的性能表现和安全可靠的架构,成为引领未来开发潮流的重要力量。本文深入探讨了 .NET 的核心优势与特点,及其在企业级应用、移动开发、云计算、人工智能等领域的广泛应用,展示了其卓越的应用价值和未来发展前景。
67 5
|
2月前
|
存储 缓存 NoSQL
2款使用.NET开发的数据库系统
2款使用.NET开发的数据库系统
下一篇
开通oss服务