连接数据库的2种方式

   对于数据库操作来说,首先第一步就是建立连接,然后才是一些具体的操作。必须在操作完后释放资源,对于连接数据库有2种方式,对于第一种方式我们用的是最多的,而对于第二种方式似乎很少用到,甚至根本没有听说过。

    One method:try...catch...finally...

    try
   {
      //Open the connection
      conn.Open();
      //Do something useful
   }
    catch(Exception ex)
   {
      //Do something about the exception
   }
   finally
  {
      //Ensure that the connection is freed
       conn.close();
  }

    在finally块中,可以释放已经使用的任何资源。这种方式的惟一麻烦是必须确保关闭连接。很容易忘记在finally块中添加关闭连接的命令,所以应在编码风格上添加一些不容易出现反常情况的内容。
另外,在给定的方法中可能会打开许多资源(例如两个数据库连接和一个文件),这样try…catch…finally块的层次有时可能不容易看懂。但还有另一个方式可以确保资源的关闭—— 使用using语句。

    the other method:

    在开发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子句都会确保关闭数据库连接。

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值