Решение «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;
}
В методе мы объявляем и формируем запрос, создаем подключение к БД (используя строку подключения, которую можно подсмотреть в свойствах БД, созданной в предыдущем уроке). Соединение открывается, запрос выполняется, если запрос вернул результат — то он возвращается в качестве результата работы метода.
Протестировать метод можно, запустив проект. Проект будет (где-то на локальном сервере) развернут, и откроется страница, которая выглядит приблизительно так.
Можно выбрать нужный метод, задать его параметры.
И увидеть ответ от сервера.