ASP.NET企业开发框架IsLine FrameWork系列之六--DataProvider 数据访问(下)

简介:

接上文

 

    对文件系统的操作:

    对于文件目前内置3中支持对象:XML、TEXT、CONFIG文件,分别位于类库XMLProvider、TextProvider、SuitConfigProvider中,大家可以自己调用,文件操作大多使用静态操作。

    对config文件的操作:

    这里还要介绍一SuitConfigProvider类库中的GetItem、GetSection、AppendItem、RemoveElement方法,这几个方法可以快速获得we.config中的Item、节点内容,以及增加、移除节点,例如有个Item信息如下:

    <add key="NameABC" value="Data Source=Server IP;User;Password=111111;Integrated Security=no;Enlist=false;Pooling=true;" />

    使用SuitConfigProvider.GetItem("NameABC ") 语句就可以立即获得该Item内容

    SuitConfigProvider类中的方法实现为静态,用户可以直接调用,下表罗列了方法调用说明:

方法名

说明

static ConfigFileType ConfigType

指明config类型,默认为web应用程序

static string GetItem(string key)

获得某个” add key”Item的值

static Hashtable GetSection(string SectionKey)

获得某个节点的数据,返回HashTable

static string GetConnectionString(string key)

protected internal类型,初始化数据库连接

static bool ModifyItem(string key, string value)

修改一个” add key”Item的值

static bool AppendItem(string key, string value)

添加一个” add key”Item的值

static bool RemoveElement(string Key)

移除” add key”Item

对文本文件操作:

方法名

说明

static string GetContent(string Fileinfo)

2次重载,获得文件内容

static bool CreateFile(string FileInfo)

创建一个文件

static bool AppendFile(string str, string FileInfo)

2次重载,追加文件内容

对XML文件操作:

方法名

说明

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命名空间的缓存支援:

    这里要提一下该命名空间下ContainerDefine类的缓存支援。

    该类共实现 ISqlContainer, IOracleContainer, IFileContainer, IDisposable四个接口,包括了常见的ADO.Net数据对象,例如DataSet、Reader等,利用OracleProvider或SqleProvider中相关方法获得的数据对象,可以直接赋值给ContainerDefine类下的对应对象,例如:

    //声明一个容器

    ContainerDefine cd = new ContainerDefine(CacheType.HttpRuntime, "IsLineCache");

    //将返回的DataSet对象赋值给cd容器

    cd.DataSet = new OracleProvider().ExecuteDataSet(sql,CommandType.StoredProcedure,"TestTable",null)

    请大家注意,在生命cd时,构造函数有2个参数,第一个是开启HttpRuntime缓存,第二个参数是缓存的名字,这样cd中的DataSet对象被赋值后,会自动缓存,下次在调用cd.DataSet对象时,将自动从缓存中读取,不需要OracleProvider().ExecuteDataSet()方法重新取数据了,目前缓存支持.Net运行时缓存和上下文缓存,当然缓存策略默认是关闭的,当构造函数接收到上述参数时,才会开启缓存。

    有关缓存的详细说明,请参看后面的文章“IsLine.HttpContent.HttpContentProvider命名空间系列”

    DataProvider没介绍的内容还有很多,这里就不一一介绍了,也许以后有时间Aicken还会继续写完整的。

 

    附 DataProvider Database方法大全:

 

方法/字段名

功能

类型

ExecuteNonQuery(string cmdText)

执行传入的sql语句

static int

ExecuteNonQuery(string cmdText, string connectionKey)

使用指定连接字符串connectionKey,执行传入的sql语句,connectionKey必须在web.config文件中有值

static int

ExecuteNonQuery(string cmdText, bool IsUsingDBTransaction, CommandType cmdType, params DbParameter[] commandParameters)

1.IsUsingDBTransaction为是否使用数据库事务。

2.如果cmdType为文本,那么cmdText为sql语句;如果cmdType为存储过程,那么cmdText为存储过程名称

3.如果不需要最后一个参数,则传递null即可

static int

ExecuteNonQuery(string cmdText, string connectionKey, bool IsUsingDBTransaction, CommandType cmdType, params DbParameter[] commandParameters)

使用指定连接字符串connectionKey,其他说明见方法3

static int

ExecuteNonQuery(string cmdText, DbConnection connection, bool IsUsingDBTransaction, CommandType cmdType, params DbParameter[] commandParameters)

使用指定DbConnection执行,其他说明见方法3

static int

ExecuteScalar(string cmdText)

执行传入的sql语句

static object

ExecuteScalar(string cmdText, CommandType cmdType, params DbParameter[] commandParameters)

其他说明见方法3

static object

ExecuteScalar(string cmdText, string connectionKey, CommandType cmdType, params DbParameter[] commandParameters)

使用指定DbConnection执行

static object

ExecuteScalar(string cmdText, DbConnection connection, CommandType cmdType, params DbParameter[] commandParameters)

使用指定DbConnection执行

static object

ExecuteReader(string cmdText)

执行sql语句,返回DbDataReader。注意,调用此方法后,须调用Dispose()释放资源

DbDataReader

ExecuteReader(string cmdText, CommandType cmdType, params DbParameter[] commandParameters)

其他说明见方法3

DbDataReader

ExecuteReader(string cmdText, string connectionKey)

见方法2

DbDataReader

ExecuteReader(string cmdText, CommandType cmdType, string connectionKey, params DbParameter[] commandParameters)

其他说明见方法3

DbDataReader

ExecuteReader(string cmdText, CommandType cmdType, DbConnection connection, params DbParameter[] commandParameters)

见方法4

DbDataReader

ExecuteDataAdapter(string cmdText)

执行sql语句

DbDataAdapter

ExecuteDataAdapter(string cmdText, string connectionKey)

见方法2

DbDataAdapter

ExecuteDataAdapter(string cmdText, CommandType cmdType, params DbParameter[] commandParameters)

其他说明见方法3

DbDataAdapter

ExecuteDataAdapter(string cmdText, CommandType cmdType, string connectionKey, params DbParameter[] commandParameters)

见方法4

DbDataAdapter

ExecuteDataAdapter(string cmdText, CommandType cmdType, DbConnection connection, params DbParameter[] commandParameters)

见方法4

DbDataAdapter

ExecuteDataSet(string cmdText)

执行sql语句

DataSet

ExecuteDataSet(string cmdText, string connectionKey, int some)

使用指定连接字符串connectionKey,其他说明见方法3

DataSet

ExecuteDataSet(string cmdText, CommandType cmdType, string srcTable, string connectionKey, params DbParameter[] commandParameters)

srcTable为填充表的名子,其他说明见方法3

DataSet

ExecuteDataSet(string cmdText, CommandType cmdType, string srcTable, params DbParameter[] commandParameters)

其他说明见方法3

DataSet

ExecuteDataSet(string cmdText, string srcTable)

其他说明见方法3

DataSet

ExecuteDataSet(string cmdText, string srcTable, string connectionKey)

其他说明见方法3

DataSet

Dispose()

释放实例中所有成员,包括各种Reader、Adapter、Connection等

void

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

相关文章
|
23天前
|
开发框架 JavaScript 前端开发
震撼!破解 ASP.NET 服务器控件 Button 执行顺序之谜,颠覆你的开发认知!
【8月更文挑战第16天】在ASP.NET开发中,通过Button控件实现先执行JavaScript再触后台处理的需求十分常见。例如,在用户点击按钮前需前端验证或提示,确保操作无误后再传递数据至后台深度处理。此过程可通过设置Button的`OnClientClick`属性调用自定义JavaScript函数完成验证;若验证通过,则继续触发后台事件。此外,结合jQuery也能达到相同效果,利用`__doPostBack`手动触发服务器端事件。这种方式增强了应用的交互性和用户体验。
33 8
|
6天前
|
开发框架 JavaScript 前端开发
|
10天前
|
测试技术 API 开发者
.NET单元测试框架大比拼:MSTest、xUnit与NUnit的实战较量与选择指南
【8月更文挑战第28天】单元测试是软件开发中不可或缺的一环,它能够确保代码的质量和稳定性。在.NET生态系统中,MSTest、xUnit和NUnit是最为流行的单元测试框架。本文将对这三种测试框架进行全面解析,并通过示例代码展示它们的基本用法和特点。
25 7
|
10天前
|
XML 开发框架 .NET
.NET框架:软件开发领域的瑞士军刀,如何让初学者变身代码艺术家——从基础架构到独特优势,一篇不可错过的深度解读。
【8月更文挑战第28天】.NET框架是由微软推出的统一开发平台,支持多种编程语言,简化应用程序的开发与部署。其核心组件包括公共语言运行库(CLR)和类库(FCL)。CLR负责内存管理、线程管理和异常处理等任务,确保代码稳定运行;FCL则提供了丰富的类和接口,涵盖网络、数据访问、安全性等多个领域,提高开发效率。此外,.NET框架还支持跨语言互操作,允许开发者使用C#、VB.NET等语言编写代码并无缝集成。这一框架凭借其强大的功能和广泛的社区支持,已成为软件开发领域的重要工具,适合初学者深入学习以奠定职业生涯基础。
67 1
|
23天前
|
存储 开发框架 算法
ASP.NET Core 标识(Identity)框架系列(四):闲聊 JWT 的缺点,和一些解决思路
ASP.NET Core 标识(Identity)框架系列(四):闲聊 JWT 的缺点,和一些解决思路
|
7天前
|
C# Windows 开发者
超越选择焦虑:深入解析WinForms、WPF与UWP——谁才是打造顶级.NET桌面应用的终极利器?从开发效率到视觉享受,全面解读三大框架优劣,助你精准匹配项目需求,构建完美桌面应用生态系统
【8月更文挑战第31天】.NET框架为开发者提供了多种桌面应用开发选项,包括WinForms、WPF和UWP。WinForms简单易用,适合快速开发基本应用;WPF提供强大的UI设计工具和丰富的视觉体验,支持XAML,易于实现复杂布局;UWP专为Windows 10设计,支持多设备,充分利用现代硬件特性。本文通过示例代码详细介绍这三种框架的特点,帮助读者根据项目需求做出明智选择。以下是各框架的简单示例代码,便于理解其基本用法。
32 0
|
7天前
|
API 开发者 Java
API 版本控制不再难!Spring 框架带你玩转多样化的版本管理策略,轻松应对升级挑战!
【8月更文挑战第31天】在开发RESTful服务时,为解决向后兼容性问题,常需进行API版本控制。本文以Spring框架为例,探讨四种版本控制策略:URL版本控制、请求头版本控制、查询参数版本控制及媒体类型版本控制,并提供示例代码。此外,还介绍了通过自定义注解与过滤器实现更灵活的版本控制方案,帮助开发者根据项目需求选择最适合的方法,确保API演化的管理和客户端使用的稳定与兼容。
36 0
|
7天前
|
开发者 C# Android开发
Xamarin 与 .NET:解锁现代化移动应用开发的超级武器——深入探讨C#与.NET框架如何赋能跨平台应用,实现高效编码与卓越性能
【8月更文挑战第31天】Xamarin 与 .NET 的结合为开发者提供了强大的平台,用于构建现代化移动应用。通过 C# 和 .NET 框架,Xamarin 可以实现一次编写、多平台运行,覆盖 iOS、Android 和 Windows。这种方式不仅节省了开发时间和成本,还保证了应用的一致性和高质量。Xamarin 是一个开源框架,专为跨平台移动应用开发设计,允许使用 C# 语言和 .NET 核心库构建原生应用,并访问各平台特定功能。微软维护的 Xamarin 是 Visual Studio 生态系统的一部分,极大地提高了开发效率。
27 0
|
7天前
|
开发者 Windows Android开发
跨平台开发新选择:揭秘Uno Platform与.NET MAUI优劣对比,帮你找到最适合的框架,告别选择困难症!
【8月更文挑战第31天】本文对比了备受关注的跨平台开发框架Uno Platform与.NET MAUI的特点、优势及适用场景。Uno Platform基于WebAssembly和WebGL技术,支持Windows、iOS、Android及Web平台,而.NET MAUI由微软推出,旨在统一多种UI框架,支持Windows、iOS和Android。两者均采用C#和XAML进行开发,但在性能、平台支持及社区生态方面存在差异。Uno Platform在Web应用方面表现出色,但性能略逊于原生应用;.NET MAUI则接近原生性能,但不支持Web平台。开发者应根据具体需求选择合适的框架。
25 0
|
19天前
.net 框架基础
.net 框架基础
30 0
下一篇
DDNS