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

use*_*504 2 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();
}
Run Code Online (Sandbox Code Playgroud)

我的代码看起来像这样。我应该为每个命令打开和关闭我的 oracle 连接,还是在第一个命令之前打开并在最后一个命令之后关闭。

PS 这个更新函数在我的应用程序中被调用了 100 多次。

Igo*_*gor 5

由于连接是方法的本地连接,因此在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();
         }
     }
}
Run Code Online (Sandbox Code Playgroud)