— Ничего не поделаешь, — возразил Кот. — Все мы здесь не в своем уме — и я, и ты, иначе бы ты сюда не попала. (с) Льюис Кэрролл

Решение «SolutionCourse» у нас уже есть, теперь  необходимо разработать web-сервис, который будет предоставлять нам необходимые услуги. В нашем случае сервис будет предоставлять нам курс валюты на запрашиваемую дату.

Статьи из этой серии:
Web-сервис на С# и клиент на Delphi. Вступление.
WEB-сервис на C# и клиент на Delphi. Часть 1. Создание решения, создание проекта БД.
Добавление проекта в решение
Для начала необходимо добавить новый проект в существующее решение Add — New Prodject. Добавляемый проект должен быть web-приложением (ASP.NET Web Application). Назовем его WebAppCourse. После этого, в созданный пустой проект добавляем web-сервис Add-New Item. Выберем тип Web Service и назовем наш будущий сервис CourceService. У вас появится файл CourceService.asmx.cs, в котором, по умолчанию, будет один метод Hello World.
Добавление сервиса в проект

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;

namespace WebAppСource
{
///

/// Summary description for CourceService

///

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
// [System.Web.Script.Services.ScriptService]
public class CourceService : System.Web.Services.WebService
{

[WebMethod]
public string HelloWorld()
{
return "Hello World";
}
}
}

Теперь напишем свой web-метод, который будет принимать данные от клиента и вызывать функцию, которая была описана в предыдущей статье. Результатом работы метода будет нужный курс валют. Назовем его GetCource.

[WebMethod]
public decimal getCourse(DateTime dt)
{
string query="Select dbo.GetCourse(@dt)"; //запрос на вызов процедуры

SqlConnection conn = new SqlConnection("Data Source=NLAB-PC\\SQLEXPRESS;Initial Catalog=CourseDB;Integrated Security=True");
conn.Open();
SqlCommand cmd = new SqlCommand(query, conn);
cmd.Parameters.AddWithValue("@dt", dt);
SqlDataReader reader = cmd.ExecuteReader();
if (reader.Read())
return reader.GetDecimal(0);
return -1;
}

В методе мы объявляем и формируем запрос, создаем подключение к БД (используя строку подключения, которую можно подсмотреть в свойствах БД, созданной в предыдущем уроке). Соединение открывается, запрос выполняется, если запрос вернул результат — то он возвращается в качестве результата работы метода.
Протестировать метод можно, запустив проект. Проект будет (где-то на локальном сервере) развернут, и откроется страница, которая выглядит приблизительно так.
Страница запущенного сервиса
Можно выбрать нужный метод, задать его параметры.
Страница запущенного метода
И увидеть ответ от сервера.
Ответ от сервера

2 комментария

  1. Никита:

    Когда будет описание клиента?)

    • devSonia:

      Пишу, но времени не хватает — его отнимают другие проекты. Готово примерно на половину. Постараюсь на выходных вычитать и опубликовать.


  • Яндекс.Метрика Счетчик PR-CY.Rank