Технология Microsoft ADO.NET

       

Разработка приложения, использующего web-сервис


В качестве клиента, вызывающего web-методы, применим Windows-приложение. Создайте новый Windows-проект и назовите его "Test NorthwindWS". Добавляем на форму элементы управления DataGrid и Panel, свойствам Dock этих элементов устанавливаем значения "Fill" и "Bottom" соответственно.

На панели размещаем две кнопки, устанавливая им следующие свойства:

button1, свойствоЗначение
NamebtnFill
Location26; 16
TextЗаполнить
button2, свойствоЗначение
NamebtnUpdate
Location122; 16
Size144; 23
TextПередать изменения

Интерфейс готов. В окне Solution Explorer щелкаем правой кнопкой на узле "References" и в появившемся контекстном меню выбираем пункт "Add Web Reference_" (рис. 14.13):


Рис. 14.13.  Окно Solution Explorer

В появившемся окне Add Web Reference доступен просмотр всех web-служб. Поскольку наш сервис расположен на локальном компьютере, нажимаем на ссылку "Web services on the local machine". Далее снова переходим по ссылке "DataNorthwind" (рис. 14.14):


увеличить изображение
Рис. 14.14.  Окно Add Web Reference, просмотр web-служб

Появляется уже знакомый нам отчет, на котором можно просмотреть описание сервиса и его методов. В поле Web reference name можно ввести имя создаваемой ссылки. Мы оставляем предложенное название "localhost" и нажимаем кнопку "Add Reference" (рис. 14.15):


увеличить изображение
Рис. 14.15.  Добавление ссылки на сервис DataNorthwind

В окне Solution Explorer появилась папка Web Reference с узлом localhost. Дважды щелкаем на этом узле. В окне Object Browser мы можем просмотреть описание web-методов, предоставляемых сервисом (рис. 14.16):


увеличить изображение
Рис. 14.16.  Просмотр web-методов в окне Object Browser

Впрочем, поскольку у нас имеется всего три предельно простых метода, мы можем вернуться к коду. Подключаем пространство имен для получения доступа к добавленному сервису:

using TestNorthwindWS.localhost;

В классе формы создаем экземпляр myService:


DataNorthwind myService = new DataNorthwind();

В обработчиках кнопок "btnFill" и "btnUpdate" вызываем соответствующие web-методы:

private void btnFill_Click(object sender, System.EventArgs e) { DataSet ds = myService.ZapolnenieDannimi(); dataGrid1.DataSource = ds.Tables[0].DefaultView; }

private void btnUpdate_Click(object sender, System.EventArgs e) { DataSet ds = (DataSet)dataGrid1.DataSource; if(!myService.PeredachaIzmeneniy(ds)) MessageBox.Show("Ошибка обновления", " При передаче изменений возникла ошибка" ); }

Запускаем приложение. Мы можем просматривать и изменять содержимое таблицы Customers (рис. 14.17):


Рис. 14.17.  Готовое приложение TestNorthwindWS

Как работает наше приложение? Мы добавили ссылку на web-службу, аналогично добавлению обычной библиотеки. Не имеет значения, где эта служба находится. Далее мы просто создаем объект класса службы и вызываем соответствующие методы. При нажатии на кнопку "Заполнить" происходит обращение к серверу IIS, который, в свою очередь, обращается к MS SQL Server и получает данные для объекта DataSet. Наше приложение устанавливает полученный DataSet в качестве источника данных для элемента управления DataGrid. Аналогично выполняется метод, привязанный к кнопке "Передать изменения".

В программном обеспечении к курсу вы найдете приложение Test NorthwindWS (Code\Glava7\ TestNorthwindWS).


Содержание раздела