多次打开/关闭oracle连接c#

时间:2019-01-11 15:26:08

标签: c# oracle

在我的业务逻辑中,我多次使用多个oracle查询。打开和关闭oracle连接的最佳方法是什么?

private void update()
{
     OracleConnection con = new OracleConnection("Connection Statement");
     OracleCommand command = new OracleCommand("Select Statement");
     con.Open();
     OracleDataReader reader = command.ExecuteReader();

     reader.Close();
     con.Close();

     // A for loop

     con.Open();
     command = new OracleCommand("Update statement");
     command.ExecuteNonQuery();
     con.Close();

     con.Open();
     command = new OracleCommand("Second Update statement");
     command.ExecuteNonQuery();
     con.Close();
}

我的代码如下所示。我应该为每个命令打开或关闭oracle连接还是在第一个命令之前打开并在最后一个命令之后关闭。

P.S。在我的应用程序中,此更新函数被调用了100多次。

1 个答案:

答案 0 :(得分:4)

由于连接是方法的本地连接,请在using块中创建该连接,然后根据需要在该块中使用它多次。该块可以包含循环或其他内容,没有规则规定使用一次后必须丢弃该连接。

但是不鼓励连接共享,因此请勿创建用于共享使用的类级别实例或静态实例。

private void update()
{
     using(OracleConnection con = new OracleConnection("Connection Statement"))
     {
         con.Open();
         using(var command = new OracleCommand("Select Statement", con))
         using(OracleDataReader reader = command.ExecuteReader()}
         {

         }

         // A for loop

         using(var command = new OracleCommand("Update statement", con))
         {
           command.ExecuteNonQuery();
         }

         using(var command = new OracleCommand("Second Update statement", con))
         {
           command.ExecuteNonQuery();
         }
     }
}