Лучшие практики с оракулом в C #

Мы используем соединение с базой данных oracle, и у нашего доступа к базе данных классов нет утилизации или закрытия. Это что-то мешает или производительность приложения? Я видел этот пример:

   string oradb = "Data Source=ORCL;User Id=hr;Password=hr;";
   OracleConnection conn = new OracleConnection(oradb); // C#
   conn.Open();
   OracleCommand cmd = new OracleCommand();
   cmd.Connection = conn;
   cmd.CommandText = "select * from departments";
   cmd.CommandType = CommandType.Text;
   OracleDataReader dr = cmd.ExecuteReader();
   dr.Read();
   label1.Text = dr.GetString(0);
   conn.Dispose();

И я понял, что это открывает связь, а затем убивает ее. Это правильно? Есть ли что-нибудь еще лучше?

Я оставляю свое соединение открытым, а затем на некоторое время закрываюсь. Я думаю это все. Это так неправильно?

1 ответ

Решение

Используйте оператор Using с одноразовыми предметами. В частности, с любым видом связи и чтения данных

string oradb = "Data Source=ORCL;User Id=hr;Password=hr;";
using(OracleConnection conn = new OracleConnection(oradb))
using(OracleCommand cmd = new OracleCommand())
{
   conn.Open();
   cmd.Connection = conn;
   cmd.CommandText = "select * from departments";
   cmd.CommandType = CommandType.Text;
   using(OracleDataReader dr = cmd.ExecuteReader())
   {
       dr.Read();
       label1.Text = dr.GetString(0);
   }
}

Здесь вы можете прочитать об использовании оператора и почему это важно. Что касается соединения и читателей, вы должны заключить объекты с помощью оператора using, чтобы убедиться, что все правильно закрыто и расположено при выходе из блока using ALSO в случае исключений.

Другие вопросы по тегам