Реклама:

SqlConnection cn = new SqlConnection(

"data source=PAVLIK;initial catalog=VUZ;" +

"integrated security=SSPI;persist security info=False;" +

"workstation id=PAVLIK;packet size=4096");

//---команда для чтения из таблицы Kaf базы данных VUZ

SqlCommand cmd = new SqlCommand("UPDATE Kaf SET Sostav = 10 WHERE KK = 3", cn); try

{

//---открытие соединения

cn.Open();

//---выполнение команды

cmd. ExecuteNonQuery();

}

catch (Exception exp)

{

MessageBox.Show("Ошибка : " + exp.Message);

}

finally

{

//---закрытие соединение

cn.Close();

}

_I

Если есть сомнения в том, что соединение будет закрыто, можно задать соединение в операторе using и затем использовать только в блоке этого оператора:

//---строка соединения

string sConnStr =

//---создание и использование соединения

using (SqlConnection cn = new SqlConnection(sConnStr))

{ }

Пример. Перепишем предыдущий пример, создавая и используя соединения в блоке оператора using:

//---строка соединения

string sConnStr =

"data source=PAVLIK;initial catalog=VUZ;" +

"integrated security=SSPI;persist security info=False;" +

"workstation id=PAVLIK;packet size=4096"

//---создание и использование соединения

using (SqlConnection cn = new SqlConnection(sConnStr))

{

//---команда для чтения из таблицы Kaf базы данных VUZ

SqlCommand cmd =

new SqlCommand("UPDATE Kaf SET Sostav = 10 WHERE KK = 3",

cn);

try {

//---открытие соединения

cn.Open();

//---выполнение команды

cmd. ExecuteNonQuery();

}

catch (Exception exp)

{

MessageBox.Show(" Ошибка : " + exp.Message);

}

}

_I

При выходе из блока созданный таким образом объект соединения будет автоматически уничтожен методом Dispose, что сопровождается закрытием соединения.

В ряде случаев доподлинно неизвестно, закрыто соединение или открыто. Текущее состояние объекта соединения возвращается его свойством State:

public ConnectionState State {get;}

Возвращаемое значение - один из членов перечисления System.Data.ConnectionState :

I Значение I Описание I

Closed

Соединение закрыто

 

Open

Соединение открыто

 

Примечание. Остальные члены перечисления зарезервированы для дальнейшего использования.

Пример использования свойства State. Если соединение закрыто, открыть его:

System.Data.SqlClient.SqlConnection sqlConnectionl = new System.Data.SqlClient.SqlConnection(".");

if (sqlConnection1.State == System.Data.ConnectionState.Closed)

{

sqlConnection1.Open();

}

_I

Возможны следующие виды изменения состояния соединения:

• из Closed в Open, при открытии соединения методом Open();

• из Open в Closed, при закрытии соединения методами Close() или Dispose().

Смена состояние объекта соединения сопровождается наступлением события

StateChange:

public event StateChangeEventHandler StateChange;

Обработчик этого события получает параметр типа StateChangeEventArgs. У него есть следующие свойства:

• OriginalState - возвращает одно из значений перечисления System.Da-ta.ConnectionState, по которому можно судить о состоянии объекта sqlConnection непосредственно перед сменой состояния;


⇐ Предыдущая страница| |Следующая страница ⇒