Настройка компонента подключения к базе данных
Источником данных для веб-службы Events является база данных SQL Server 2000, поэтому добавим компонент SQLConnection. При поддержке другого типа базы данных используется компонент OleDBConnection. Компонент SQLConnection дает дополнительные возможности по управлению и повышает эффективности работы, в отличие от компонента OleDBConnection, поэтому последний используется только в случае необходимости. Если для источника данных отсутствует провайдер OLE-DB, то загрузите с сайта Microsoft доступен провайдер ODBC, поставляемый в отдельной библиотеке.
Свойство ConnectionString в окне свойств позволяет выбрать предыдущие подключения, настроенные на рабочей станции, или создать новое подключение. Для нашего примера создадим новое подключение (см. рис. 3.4).
![](image/15-4sm.gif)
увеличить изображение
Рис. 3.4. Выбор нового подключения в свойстве ConnectionString компонента SQLConnection
После выбора <New Connection...> в качестве параметра свойства ConnectionString откроется окно Data Link Properties (Свойства подключения к данным). В этом окне настраиваются все параметры, представленные в строке подключения ADO.NET. Окно свойств подключения к данным – это общее окно Visual Studio для настройки подключения ADO. Для веб-службы Events используется сервер базы данных, расположенный на сервере AMD1700, и база данных ASPNETServices (см. рис. 3.5).
![](image/15-5.gif)
Рис. 3.5. Настройка нового подключения к данным для веб-службы Events
Изменим имя компонента по умолчанию SQLConnection1 на более дружественное пользователю ServicesDBConn. После настройки и создания подключение SQLConnection работает в любом месте веб-службы. Класс Events наследуется из System.Web.Services. Класс WebService содержит множество классов и функций для взаимодействия с HTTP-соединением. В листинге 3.2 приведен исходный код, сгенерированный Visual Studio .NET для класса Events.
Листинг 3.2. Source Code of Class Events after SQLConnection Component Added and Configured (html, txt)
При работе с элементами управления веб-службы использование дизайнера компонентов не обязательно. Элементы управления добавляются в веб-службу посредством объявления и конструирования в файле Codebehind, как и другие переменные и классы. Например, экземпляр объекта SQLConnection можно создать и инициализировать в конструкторе класса Events. Код, приведенный в листинге 3.3, демонстрирует создание локального экземпляра объекта SQLConnection без использования дизайнера компонентов и компонента SQLConnection.
Листинг 3.3. Using SQLConnection Object without the Designer and Obtaining Connection String from the web.config File (html, txt)
В листинге 3.3 экземпляр myConn объявляется локально по отношению к классу Events. Строка подключения извлекается из файла web.config и используется в качестве конструктора экземпляра myConn. После создания экземпляра myConn в конструкторе Events его можно использовать в любом месте класса.
private System.Data.SqlClient.SqlConnection ServicesDBConn;
#region Component Designer generated code
// Required by the Web Services Designer private IContainer components = null;
/// <summary> /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// </summary> private void InitializeComponent() { this.ServicesDBConn = new System.Data.SqlClient.SqlConnection(); // // ServicesDBConn // this.ServicesDBConn.ConnectionString = "data source=amd1700;initial catalog=ASPNETServices;" + "integrated security=SSPI;persist security info=False;" + "workstation id=AMD1700;packet size=4096";
}
/// <summary> /// Clean up any resources being used. /// </summary> protected override void Dispose( bool disposing ) { if(disposing && components != null) { components.Dispose(); } base.Dispose(disposing); }
#endregion }
Листинг 3.2. Source Code of Class Events after SQLConnection Component Added and Configured
При работе с элементами управления веб-службы использование дизайнера компонентов не обязательно. Элементы управления добавляются в веб-службу посредством объявления и конструирования в файле Codebehind, как и другие переменные и классы. Например, экземпляр объекта SQLConnection можно создать и инициализировать в конструкторе класса Events. Код, приведенный в листинге 3.3, демонстрирует создание локального экземпляра объекта SQLConnection без использования дизайнера компонентов и компонента SQLConnection.
public class Events : System.Web.Services.WebService { //locals to class private System.Data.SqlClient.SqlConnection myConn;
public Events() { //CODEGEN: This call is required by the //ASP.NET Web Services Designer InitializeComponent();
System.Configuration.AppSettingsReader myAppSettings = new System.Configuration.AppSettingsReader();
//get the connection string from web.config string sConnect = ((string) (myAppSettings.GetValue ("ProductionDB.ConnectionString", typeof(string))));