Приложение 1. Освобождение ресурсов
Для освобождения ресурсов надо использовать оператор using или блок try...finally. Во многих примерах данного документа они опущены с целью ограничения размера документа, но при разработке реальных приложений они обязательно должны использоваться.
Оператор using
// C# using System; using System.Data; using System.Data.LinterClient; class UsingSample { static void Main() { // Создание соединения using (LinterDbConnection con = new LinterDbConnection()) { con.ConnectionString = "Data Source=LOCAL;User ID=SYSTEM;Password=MANAGER8"; con.Open(); // Создание команды using (LinterDbCommand cmd = new LinterDbCommand()) { cmd.Connection = con; cmd.CommandText = "select 'СУБД', 'ЛИНТЕР'"; // Выполнение команды using (LinterDbDataReader reader = cmd.ExecuteReader()) { // Получение данных while (reader.Read()) { Console.WriteLine(reader[0] + " " + reader[1]); } } } } } }
Блок try...finally
// C# using System; using System.Data; using System.Data.LinterClient; class TryFinallySample { static void Main() { LinterDbConnection con = null; LinterDbCommand cmd = null; LinterDbDataReader reader = null; try { // Создание соединения con = new LinterDbConnection(); con.ConnectionString = "Data Source=LOCAL;User ID=SYSTEM;Password=MANAGER8"; con.Open(); // Создание команды cmd = new LinterDbCommand(); cmd.Connection = con; cmd.CommandText = "select 'СУБД', 'ЛИНТЕР'"; // Выполнение команды reader = cmd.ExecuteReader(); // Получение данных while (reader.Read()) { Console.WriteLine(reader[0] + " " + reader[1]); } } finally { // Освобождение ресурсов if (reader != null) { reader.Close(); } if (cmd != null) { cmd.Dispose(); } if (con != null) { con.Close(); } } }