在我的业务逻辑中,我多次使用多个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多次。
答案 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();
}
}
}