Приложение 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();
}
}
}
}