知识大全 数据库连接[2]

Posted 资源

篇首语:知是行的主意,行是知的功夫。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 数据库连接[2]相关的知识,希望对你有一定的参考价值。

C#高级编程:数据库连接[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

     ——此文章摘自《C#高级编程(第 版)》定价 元 特价 元 购买

    catch ( Exception ex )           // Do something about the exception        finally           // Ensure that the connection is freed       conn Close ( ) ;    

    在finally块中 可以释放已经使用的任何资源 这种方式的惟一麻烦是必须确保关闭连接 很容易忘记在finally块中添加关闭连接的命令 所以应在编码风格上添加一些不容易出现反常情况的内容

    另外 在给定的方法中可能会打开许多资源(例如两个数据库连接和一个文件) 这样try…catch…finally块的层次有时可能不容易看懂 但还有另一个方式可以确保资源的关闭—— 使用using语句     第二种方式—— 使用using语句块    在开发C#的过程中 NET在对象不再引用之后清理它们的方法是使用非决定性的析构方式 这已经引起了一个非常热烈的讨论

    在C++中 对象只要使用完毕 就会自动调用其析构函数 这对于设计基于资源的类的人员来说 是一个非常好的消息 因为如果用户忘记关闭资源 使用析构函数是非常理想的 只要对象使用完毕 就会调用C++析构函数 所以 如果出现了异常 但没有捕获 有析构函数的所有对象就会调用它们的析构函数

    在C#和其他托管语言中 没有自动 决定性的析构方式 而是有一个垃圾收集器 它会在未来的某个时刻释放资源 它是非决定性的 因为我们不能确定这个过程在什么时候发生 忘记关闭数据库连接可能会导致 NET可执行程序的各种问题 幸运的是 我们还有解决的方法 下面的代码说明了如何使用using子句确保实现IDisposable接口(详见第 章)的对象在退出块时立即被释放     string source = server=(local)\\\\NetSDK; + integrated security=SSPI; + database=Northwind ;    using ( SqlConnection conn = new SqlConnection ( source ) )           // Open the connection       conn Open ( ) ;       // Do something useful    

    在这个示例中 无论块是如何退出的 using子句都会确保关闭数据库连接

    查看一下连接类的Dispose()方法的IL代码 它们都检查连接对象的当前状态 如果其状态为打开 就调用Close()方法 浏览 NET程序集的一个强大工具是Reflector(可以从/ aisto /roeder/dotnet/上获得) 这个工具允许查看任何 NET方法的IL代码 还可以把IL代码反编译为源代码 让我们轻松地确定给定的方法的作用

    在编程时 应至少使用这两个方法中的一个 或者两个方法都使用 无论在哪里获得资源 最好都使用using ()语句 因为尽管我们都会编写Close()语句 但有时会忘记 此时using子句就会发挥作用 这两种方式都没有好的异常处理方式来替代 所以在大多数情况下 最好组合使用这两种方法 如下面的示例所示     try           using (SqlConnection conn = new SqlConnection ( source ))                 // Open the connection          conn Open ( ) ;          // Do something useful          // Close it myself          conn Close ( ) ;               catch (Exception e)           // Do something with the exception here     

    这里显式调用了Close() 但这是不必要的 因为using子句将确保在任何情况下都执行关闭操作 但是 应确保像这样的资源尽可能早地释放 因为在块的其余部分可能有更多的代码 而在这些地方没有必要锁定资源

    另外 如果在using块中出现了异常 using子句就会确保在资源上调用IDisposable Dispose方法 在本例中将确保总是关闭数据库连接 这样 与必须确保在异常子句中关闭连接相比 代码的可读性更高

    最后 如果编写一个封装资源的类 无论该资源是什么 都应实现IDisposable接口 关闭资源 这样 任何使用该类的代码都可以利用using()语句 以确保资源被释放

cha138/Article/program/net/201311/14824

相关参考

知识大全 Struts从零开始三、连接数据库实例[2]

Struts从零开始三、连接数据库实例[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!<

知识大全 轻松应对JSP连接MySQL数据库问题[2]

轻松应对JSP连接MySQL数据库问题[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nbs

知识大全 ASP.NET入门教程 14.1.2 数据库连接

ASP.NET入门教程14.1.2数据库连接  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nbs

知识大全 手机如何用数据线连接电脑上网

手机如何用数据线连接电脑上网使用数据线连接貌似很麻烦,而且还不一定成功,要是电脑有无线网卡,直接用无线网卡共享网路就可以了4个步骤解决。1、确保你的手机有root权限。2、手机要安装USB驱动。可以用

知识大全 asp 连接mySQL数据库的连接方法

asp连接mySQL数据库的连接方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  连接mysq

知识大全 通过Oracle连接管理器控制数据库连接

通过Oracle连接管理器控制数据库连接  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  为了更好

知识大全 我的小米2才买一个礼拜,现在插USB和电脑连接没反应,连充电都不显示,数据线是好的,USB调试也打开了

我的小米2才买一个礼拜,现在插USB和电脑连接没反应,连充电都不显示,数据线是好的,USB调试也打开了  以下文字资料是由(本站网www.cha138.com)小编为大家

知识大全 asp连接sqlserver数据库实现代码

  本文章介绍了利用asp连接sqlserver数据库实例代码连接方法有三种分别为通过ODBCDSN建立连接通过oledb建立连接通过driver建立连接三种下面我们来看看第一种   通过d

知识大全 asp 连接access数据库二种方法

  连接access数据库教程二种方法这里提供了access数据库的dsnless连接方法与accessoledb连接方法哦dimdb="dbmdb";access数据库的dsnless连接方法:  

知识大全 各种数据库连接代码

  MSAccess数据库连接  用DSN连接并且没有用户名和密码    <%  setconn=ServerCreateObject(ADODBConnection)  connopenYou