ADO.NET经过长时间的发展,很多用户都很了解ADO.NET了,这里我发表一下个人理解,和大家讨论讨论。我们先来分析一下连接池的概念吧,然后在具体的人系事务处理的方法。创建:OLE DB .NET 数据提供程序使用 OLE DB 会话池来自动管理连接池,当连接打开时,将根据一种精确的匹配算法来创建连接池,该算法会使连接池与连接中的字符串相关联。每个连接池都与一个不同的连接字符串相关联。当新连接打开时,如果连接字符串不精确匹配现有池,则将创建一个新池。连接池是为每个唯一的连接字符串创建的。当创建一个池后,将创建多个连接对象并将其添加到该池中,以满足最小池大小的要求。连接将根据需要添加到池中,直至达到***池大小。
我们注重客户提出的每个要求,我们充分考虑每一个细节,我们积极的做好成都做网站、网站设计服务,我们努力开拓更好的视野,通过不懈的努力,成都创新互联公司赢得了业内的良好声誉,这一切,也不断的激励着我们更好的服务客户。 主要业务:网站建设,网站制作,网站设计,微信小程序定制开发,网站开发,技术开发实力,DIV+CSS,PHP及ASP,ASP.Net,SQL数据库的技术开发工程师。
#T#移除:如果连接生存期已过或者池管理程序检测到与服务器的连接已被断开,则对象池管理程序将从池中移除该连接。请注意,只有在尝试与服务器进行通讯后,才可以检测到这种情况。如果发现某连接不再连接到服务器,则会将其标记为无效。对象池管理程序会定期扫描连接池,以查找已被释放到池中并标记为无效的对象。找到后,这些连接将被***移除。在编程过程中尽可能短的时间使用连接,要及时的关闭连接。关闭连接后,自动放入连接池。PB必须手工实现事务处理,如回滚等。
ADO.NET事务处理方法:
1.手工ADO.NET事务:用SqlConnection.BeginTransaction 方法来启动事务,返回关联的SqlTransaction 对象。将事务对象关联到参与事务的命令上,用SqlTtansaction.Commit 方法提交事务SqlTransaction.Rollback 方法来回滚事务。此过程与PB相同。
2.自动ADO.NET事务:自动事务是COM+ 提供的一个服务,如果要使用此服务,类需要遵从:
◆必须直接或间接从SystemEnterpriseServicedComponent派生。
◆将 TransactionAttribute 应用此类来控制类的事务行为。
◆使用强名称为组件签名。
◆将[AutoComplete] 特性(属性信息)应用于类中的方法。如果含有[AutoComplete] 特性的方法调用完成而没有错误,则事务被提交,否则被回滚。
测试过程记录:
开始用时c#做自动事务测试实例,在使用强名为组件签名时,编译时出现“重复属性[assembly: AssemblyKeyFile("f:\\complusexample1.snk")]”错误。用vb.net 做测试实例,一切正常。
仔细研究C# 发现工程中自己生成的文件:AssemblyInfo.cs中已经包含[assembly: AssemblyKeyFile("")]条目,把此条目改为:[assembly: AssemblyKeyFile("f:\\complusexample1.snk")],同时,去掉在ComPlusExample1 中的对应属性信息。
- using System;
- using System.EnterpriseServices ;
- using System.Reflection ;
- ///[assembly: AssemblyKeyFile("f:\\complusexample1.snk")](此部件属性信息要放到AssemblyInfo.cs文件中。)
- [assembly:ApplicationName("ComPlusExample1")]
- namespace ComPlusExample1
- {
- [Transaction(TransactionOption.Required )]
- public class ComPlusExample1 : ServicedComponent
- {
- public ComPlusExample1():base()
- {
- }
- {
- return "my god!";
- }
- }
- }
新闻标题:深入讲解ADO.NET事务处理方法
本文URL:http://www.shufengxianlan.com/qtweb/news14/214864.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联