知识大全 数据库连接[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] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!<
轻松应对JSP连接MySQL数据库问题[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nbs
ASP.NET入门教程14.1.2数据库连接 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nbs
手机如何用数据线连接电脑上网使用数据线连接貌似很麻烦,而且还不一定成功,要是电脑有无线网卡,直接用无线网卡共享网路就可以了4个步骤解决。1、确保你的手机有root权限。2、手机要安装USB驱动。可以用
asp连接mySQL数据库的连接方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 连接mysq
通过Oracle连接管理器控制数据库连接 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 为了更好
知识大全 我的小米2才买一个礼拜,现在插USB和电脑连接没反应,连充电都不显示,数据线是好的,USB调试也打开了
我的小米2才买一个礼拜,现在插USB和电脑连接没反应,连充电都不显示,数据线是好的,USB调试也打开了 以下文字资料是由(本站网www.cha138.com)小编为大家
本文章介绍了利用asp连接sqlserver数据库实例代码连接方法有三种分别为通过ODBCDSN建立连接通过oledb建立连接通过driver建立连接三种下面我们来看看第一种 通过d
连接access数据库教程二种方法这里提供了access数据库的dsnless连接方法与accessoledb连接方法哦dimdb="dbmdb";access数据库的dsnless连接方法:
MSAccess数据库连接 用DSN连接并且没有用户名和密码 <% setconn=ServerCreateObject(ADODBConnection) connopenYou