Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции Введение в специальность.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
4.29 Mб
Скачать

Лек ция № 8. Создание клиентских приложений Windows. Подключение к бд

Есть несколько способов подключения к БД в приложении. Проще всего это сделать при помощи графических инструментов Visual Studio .NET во время разработки. Для управления текущими соединениями с источниками данных служит окно Server Explorer. Оно обычно расположено у левой границы окна IDE и соседствует с панелью Toolbox. Если в данный момент в окне IDE отображается панель Toolbox, щелкните расположенный под ней ярлычок Server Explorer, чтобы открыть одноименное окно.

Текущие соединения с источниками данных, доступные в Visual Studio .NET,

отображаются в окне Server Explorer в виде узлов дерева Data Connections. Чтобы

добавить к проекту соединение, достаточно перетащить нужный узел Data Connections

из окна Server Explorer в окно дизайнера формы. При этом автоматически создается новый объект SqlConnection или OleDbConnection, который конфигурируется для подключения к нужной БД. Перетащите узел, представляющий нужную БД, в окно дизайнера.

Server Explorer

Окно Server Explorer также позволяет создать новое соединение, щелкнув правой кнопкой узел Data Connections и выбрав из контекстного меню команду Add Connection. При этом открывается диалоговое окно Data Link Properties.

Окно Data Link Properties предоставляет графический интерфейс для настройки соединений с источником данных. На вкладке Providers можно выбрать провайдер для подключения к БД, на вкладке Connection — настроить свойства соединения, а на вкладке Advanced — задать дополнительные необязательные свойства. Вкладка All позволяет просматривать и редактировать текушие параметры для всех свойств одновременно. Настроив новое подключение, щелкните ОК., чтобы закрыть диалоговое окно Data Link Properties, — новое соединение появится в окне Server Explorer, откуда его можно перетащить в окно дизайнера.

Диалоговое окно Data Luik Properties

Соединение с БД также допустимо создавать вручную. Для этого перетащите объект Connection с панели Toolbox в окно дизайнера либо объявите и создайте экземпляр этого объекта в коде. В этом случае приходится вручную устанавливать свойство ConnectionString. Ниже показан пример, демонстрирующий программное создание объекта SqlConnection, установку свойства ConnectionString и вывод свойств объекта SqlConnection:

string sqlConnectString1 = "Data Source=(local);" +

"Integrated security=SSPI;Initial Catalog=AdventureWorks;";

using (SqlConnection connection= new SqlConnection(sqlConnectString1))

{ connection.Open( );

// Return some information about the server.

Console.WriteLine("---.NET data provider for SQL Server " + "with Windows Authentication mode---");

Console.WriteLine("ConnectionString = {0}\n", sqlConnectString1);

Console.WriteLine("State = {0}", connection.State);

Console.WriteLine("DataSource = {0}", connection.DataSource);

Console.WriteLine("ServerVersion = {0}", connection.ServerVersion); }

Метод Open объектов SqlConnection или OleDbConnection открывает соединение, метод Close закрывает его. Метод Open использует информацию из строки соединения в свойстве ConnectionString для нахождения источника данных и установки соединения

с ним. После закрытия соединения методом Close это соединение возвращается в пул.

То же происходит после применения к соединению метода Dispose. Если вы обна-

ружили, что соединение, которое вы почитали открытым, физически разорвано, то все

равно закройте его методом Close. Тогда оно будет возвращено в пул и помечено как

неработоспособное. В дальнейшем объект-менеджер пула (object pooler) разберется в таком соединении самостоятельно, без вашего участия. Итак, соединение всегда должно закрываться. Удобнее делать это в блоке finally, который выполняется всегда.

SqlConnection cn = new SqlConnection("Строка соединения");

try

{

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

cn.Open();

}

catch (Exception exp)

{

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

}

finally

{

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

cn.Close();

}