Лучшие практики с оракулом в 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 в случае исключений.