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

简介:

    上一期的文章中我们提到DataProvider模块,这个模块完成了各种数据源的操作,兼容的数据源包括SQL SERVER数据库、Oracle数据库、XML文件、文本文件、Config站点配置文件等。基本约束关系如下图所示:

       clip_image002

图 2.1 DataProvider 基本约束关系

    这个模块主要包括以下命名空间:

    ● IsLine.Data.ContainerDefiner命名空间:

    IsLine.Data.ContainerDefiner是DataProvider的一个扩展,它定义了一些ADO.NET中常用的数据对象,以容器的角色出现在上层中,它可以根据一些列的缓存策略,并根据这些策略对数据进行持久化,这个命名空间依赖于命名空间IsLine.HttpContent.HCDataTypeEnum。

    主要成员类为ContainerDefine ,它实现了接口ISqlContainer, IOracleContainer, IFileContainer, IDisposable),其中的IFileContainer.FileContent方法,返回或设置一个FileContent,该FileContent为IfileContainer接口成员,包含缓存优化选项,该选项可在实例化时指定;其他方法包括SqlDataReader、OracleDataReader、DataSet、DataRow、Dispose()都是对ADO.NET的二次封装,但是又包含了一些优化操作,比如当存储大型数据时,DataProvider会自动开启缓存机制,以提高数据读取效率。

    ● IsLine.Data.DataProvider命名空间:

    这个命名空间是DataProvider的主体,它完成了对数据的存储操作。它依赖于命名空间:IsLine.Security.Cryptography、IsLine.Data、IsLine.Data.Configuration。主要成员类名称有DBProvider、OracleProvider(实现接口IOracleProvider)、SqlProvider(实现接口ISqlServerProvider)、FileProvider、XMLProvider、TextProvider、SuitConfigProvider。

    你可以使用自定义的工厂,也可以直接使用IsLine FrameWork中定义好的方法DataProvider处理数据,使用DataProvider前,需要先在web.config中配置以下节点,添加于<configSections></configSections>之间:

<IsLine.Data.Configuration>
<DataBaseConnection>

<DBType>IsLine.Data.DataTypeEnum.DataBaseType.SqlServer</DBType>
<Server>Server IP</Server>
<UserID>sa</UserID>
<PwdType>Cryptography.Decrypting</PwdType>

<Pwd>111111</Pwd>
<DataBase>UML</DataBase> //SqlServer only
</DataBaseConnection>
</IsLine.Data.Configuration>

    其中DataBaseConnection指明数据库类型,PwdType指明密码加密策略,IsLine Provider内置3中策略供选择,如配置文件所示。以上示例为针对SqlServer,对于Oralce数据库,同样采用以上的格式配置,只不过稍作变化:

将DBType变更为IsLine.Data.Configuration.OracleConnectString;Server节点指明TNS别名;同时多出了OtherPlus节点中的内容会作为Oracle连接串的一部分,发送给数据库。

<OtherPlus>Provider=MSDAORA.1; Persist Security Info=False;</OtherPlus>

以上方法为结构化配置方法,如果读者觉得这样配置比较麻烦,可以使用以下简单配置方法,免去节点的配置:

    SQL SERVER配置:

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

    ORACLE 配置:

    <add key="IsLine.Data.Configuration.OracleConnectString" value="Data Source=TNS别名;User;Password=111111;Integrated Security=no;Enlist=false;Pooling=true;" />

上面提到的两种配置方法,可任选其一。节点配置好后,使用以下方法调用,调用时分为面向连接与非连接两种方式,面向连接的操作(例如返回DataSet/Reader/Adapter等)使用前须进行实例化,使用后须调用.Dispost()方法释放资源,Dispost()是一个经过DataProvider重写的方法,一旦调用将会释放所有资源,包括Connection、Command、DataReader等,而面向非连接操作则直接调用即可。如果使用DataReader、Adapter等为面向连接操作,单纯执行sql语句为非连接操作,例如访问数据库单纯执行依据sql语句可以使用:

    OracleProvider.ExecuteNonQuery()或SqlProvider.ExecuteNonQuery(),而有些方法是需要实例化才能使用的,例如:

    OracleProvider op = new OracleProvider();

    op.SomeFunc();

如果各位读者希望得到更加详细的方法与参数列表,请访问我的博客。

下面为大家列出一些执行的实例:

  1.执行一句sql语句:

    OracleProvider.ExecuteNonQuery(sql);

2.利用事务执行一批sql语句:

OracleProvider.ExecuteNonQuery(sql,true,CommandType.Text,null);

其中第二个参数说明打开事务,执行第一个参数传入的语句,语句之间以“!”号分隔。

3.执行一个存储过程:

OracleProvider.ExecuteNonQuery(StoredProcedureName,null,CommandType.StoredProcedure, OracleParam);

4.返回一个DataReader

new OracleProvider().ExecuteReader(sql);

6.使用指定连接返回一个DataSet

new OracleProvider().ExecuteDataSet(sql,"ConnectionStr",0);

    以上只是几个很简单的例子,总之使用DataProvider,就可以实现通过配置控制数据库,而代码层面只有操作语句,没有数据库连接、配置语句的目的了。


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

相关文章
|
9月前
|
API C++ Windows
Visual C++运行库、.NET Framework和DirectX运行库的作用及常见问题解决方案,涵盖MSVCP140.dll丢失、0xc000007b错误等典型故障的修复方法
本文介绍Visual C++运行库、.NET Framework和DirectX运行库的作用及常见问题解决方案,涵盖MSVCP140.dll丢失、0xc000007b错误等典型故障的修复方法,提供官方下载链接与系统修复工具使用指南。
2016 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,系统可同时安装多个版本,确保软件兼容运行。
2097 0
Microsoft .NET Framework 3.5、4.5.2、4.8.1,适用于 Windows 版本的 .NET,Microsoft C Runtime等下载
使用的是.NET Framework 4.0,并且需要使用SMTP协议发送电子邮件
使用的是.NET Framework 4.0,并且需要使用SMTP协议发送电子邮件
265 1
|
10月前
|
C++
提示缺少.NET Framework 3.5 安装错误:0x80070002、0x800F0950\0x80004002
.NET Framework常见问题及解决方法汇总,
1093 0
|
开发框架 JavaScript 前端开发
震撼!破解 ASP.NET 服务器控件 Button 执行顺序之谜,颠覆你的开发认知!
【8月更文挑战第16天】在ASP.NET开发中,通过Button控件实现先执行JavaScript再触后台处理的需求十分常见。例如,在用户点击按钮前需前端验证或提示,确保操作无误后再传递数据至后台深度处理。此过程可通过设置Button的`OnClientClick`属性调用自定义JavaScript函数完成验证;若验证通过,则继续触发后台事件。此外,结合jQuery也能达到相同效果,利用`__doPostBack`手动触发服务器端事件。这种方式增强了应用的交互性和用户体验。
304 8
|
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
|
开发框架 缓存 监控
NET Framework 到 .NET 5/6 的迁移是重大的升级
本文详细介绍了从 .NET Framework 4.8 迁移到 .NET 5/6 的过程,通过具体案例分析了迁移策略与最佳实践,包括技术栈评估、代码迁移、依赖项更新及数据库访问层的调整,强调了分阶段迁移、保持代码可维护性及性能监控的重要性。
332 3