Programming: Visual Basic


Как работать с данными в Web-службах в Microsoft Visual Basic .NET



  Источник: altWebDeveloper - сетевой журнал для вебмастеров и разработчиков Microsoft .NET


Данная статья содержит информацию о бета-версии программного продукта Microsoft. Информация в данной статье не является официальной и может быть изменена без предварительного уведомления.

Бета-версия продукта не обслуживается через каналы технической поддержки Microsoft. За информацией о получении технической поддержки бета-версии программного обеспечения обратитесь к документации, содержащейся в поставке, или на веб-сайте, с которого был загружен продукт.

За соответствующей информацией по Microsoft Visual C# .NET обратитесь к следующей статье Microsoft Knowledge Base: .

Аннотация

В данной статье рассматривается способ представления Web-службой автономных данных в виде объектов "DataSet", основанных на XML. Использование в Web-службе объектов "DataSet" позволяет уменьшить количество подключений к серверу баз данных.

Системные требования

В следующем списке представлены рекомендации по подбору аппаратного и программного обеспечения, сетевой инфраструктуры и пакетов обновления:
  • Microsoft Windows 2000 Professional, Windows 2000 Server, Windows 2000 Advanced Server или Windows NT 4.0 Server
  • Microsoft Internet Information Server 4.0 или Internet Information Services 5.0
  • Microsoft Visual Studio .NET
В данной статье подразумевается, что вы обладаете достаточными знаниями в следующих областях программирования:
  • Visual Studio .NET
  • Основы работы с наборами данных
  • SQL
  • Web-службы

Использование данных в Web-службах

  1. Запустите Microsoft Visual Studio .NET.
  2. В меню "File" выберите пункт "New" и запустите команду "Project". .
  3. В окне "Add New Project" выберите в списке "Project Types" тип проекта "Visual Basic Projects". Выберите шаблон "ASP.NET Web Service". В текстовом поле "Name" введите "DataService". В текстовом поле "Location" введите путь к используемому веб-серверу с ASP.NET.
  4. Переименуйте файл решения "DataService". .
  5. Переименуйте Web-сервис, созданный по умолчанию, с " Service1.asmx" на "DataService.asmx".
  6. Измените текущее представление, щелкнув по ссылке "Click here to switch to code view".
  7. В начале модуля укажите директивы "Import" для облегчения доступа к объектам "DataSet" и "Connection":
    Imports System.Data
    Imports System.Data.SqlClient
    
  8. Определите метод "GetTitleAuthors", который возвращает информацию об авторе из базы данных. Данный метод необходимо пометить с помощью атрибута [WebMethod]. Без этого атрибута метод не будет предоставляться службой. Метод "GetTitleAuthors" соединяется с базой данных и выполняет два SQL-запроса: первый возвращает список авторов, а второй - список заголовков книг. Результаты обоих запросов возвращаются в одном наборе данных с именем "DS".

    Добавьте следующий программный код в класс "DataService" под именем "Service1":
    <WebMethod()> Public Function GetTitleAuthors() As DataSet
    Dim MyConnection As SqlConnection = New
    SqlConnection = New SqlConnection
              ("server=(local);database=pubs;Trusted_Connection=yes")
    Dim MyCommand1 As SqlDataAdapter = New SqlDataAdapter
              ("select * from Authors", MyConnection)
    Dim MyCommand2 As SqlDataAdapter = New SqlDataAdapter
              ("select * from Titles", MyConnection)
    Dim DS As New DataSet
    MyCommand1.Fill(DS, "Authors")
    MyCommand2.Fill(DS, "Titles")
    Return DS
    End Function
    
  9. Внутри общедоступного класса "Service1" определите метод ("PutTitleAuthors"), который сохраняет информацию об авторах в базе данных. Метод "PutTitleAuthors" является методом Web-службы, который принимает объект "DataSet" как параметр, возвращая целое число, которое представляет число строк, полученных из таблицы "Authors":
    <WebMethod()> Public Function PutTitleAuthors(DS As DataSet) As Integer
         Return DS.Tables(0).Rows.Count
    End Function
    
  10. Сохраните и закройте проект.

Использование Web-службы

  1. Запустите Microsoft Visual Studio .NET.
  2. В меню "File" выберите пункт "New" и запустите команду "Project".
  3. В окне "Add New Project" выберите в списке "Project Types" тип проекта "Visual Basic Projects". Выберите шаблон "ASP.NET Web Application". В текстовом поле "Name" введите "DataServiceClient". В текстовом поле "Location" введите путь к используемому веб-серверу с ASP.NET.
  4. Добавьте ссылку на пространство имен "DataService" Web-службы в новом приложении. На этом шаге будет создан модуль proxy-класса на клиентском компьютере. При наличии proxy-класса Вы можете создавать основанные на нем объекты. При каждом вызове метода для данного объекта будет создано представление в виде uniform resource identifier (URI) Web службы (SOAP-запрос).
    1. В меню "Project" выберите пункт "Add Web Reference".
    2. В окне "Add Web Reference" введите в поле "Address" URL-адрес Web службы и нажмите клавишу "ENTER". Если Web служба расположена на локальном компьютере, введите следующий адрес: "http://localhost/DataService/DataService.asmx".
    3. Выберите пункт "Add Reference".
    4. Убедитесь, что ссылка на пространство имен содержится в дереве "Web References" в окне "Solution Explorer".
  5. Добавьте элемент "DataGrid" на веб-страницу. Назовите элемент "Authors_DataGrid".
  6. Добавьте элемент "Label" на веб-страницу. Назовите элемент "Message" и удалите его значение по умолчанию.
  7. В процедуру "Page_Load" добавьте следующий программный код, создающий экземпляр Proxy-объекта:
    Dim D As DataServiceVB.DataService = New DataServiceVB.DataService()
    
  8. Процедура "Page_Load" вызывает метод "GetTitleAuthors" для получения набора данных. Этот набор данных может быть связан с элементом "Authors_DataGrid":
    Dim MyData As DataSet = D.GetTitleAuthors()
            Authors_DataGrid.DataSource=MyData.Tables("Authors").DefaultView
    Authors_DataGrid.DataBind()
    Message.Text = "The number of rows is:" 
              & MyData.Tables("Authors").Rows.Count.ToString()
    
  9. Сохраните и запустите проект. Убедитесь, что информация содержится в элементе "DataGrid" и что методы Web-службы вызываются корректно.






При перепечатке любого материала с сайта, видимая ссылка на источник www.warayg.narod.ru и все имена, ссылки авторов обязательны.

© 2005