Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая работа.docx
Скачиваний:
0
Добавлен:
20.01.2026
Размер:
1.75 Mб
Скачать

7. Клиентская часть web – сервиса для организации встреч с использованием календаря встреч

Необходимо добавить форму Web Form. Для этого в обозревателе решений нужно правой кнопкой мыши нажать на адрес нашего веб – сайта, выбрать пункт «Добавить» и нажать на «Форма Web Form».

Рис.35

Откроется конструктор и исходный код страницы. Нам нужно добавить:

  1. Элемент DropDownList, где будет находится список месяцев, из которого клиент может выбрать для какого месяца он хочет увидеть свободные даты.

  2. Элемент Button, с помощью которой клиент будет инициализировать запрос.

  3. Две таблицы GridView для вывода списков свободных дат.

Чтобы обеспечить запрос списка месяцев на этапе загрузки страницы, необходимо написать обработчик события Page_Load в файле default.aspx.cs

protected void Page_Load(object sender, EventArgs e)

{

if (!Page.IsPostBack)

{

Service WebC = new Service();

List<string> list = WebC.GetMonth();

DDL1.DataSource = list;

DDL1.DataBind();

}

}

Таким образом на этапе загрузки страницы осуществляется вызов веб -метода GetMonth. Полученный от web – сервиса список передаётся в элемент DropDownList для взаимодействия пользователя со списком месяцев.

Далее нужно написать обработчик события B1_Click:

protected void B1_Click(object sender, EventArgs e)

{

string sel = DDL1.Text;

Service WebC = new Service();

GW1.DataSource = WebC.GetDate(sel);

GW1.DataBind();

GW2.DataSource = WebC.GetDate1(sel);

GW2.DataBind();

}

При нажатии на кнопку осуществляется вызов веб - методов GetDate и GetDate1 с параметром выбранного месяца в элементе DropDownList, а также вывод полученных таблиц в GridView на странице.

Полный код клиентской части см. приложение Б.

Теперь проверим работоспособность web - сервиса в целом.

Рис.36

Рис.37

8.Список Литературы

  1. В.Олифер, Н.Олифер «Компьютерные сети. Принципы, технологии, протоколы»

  2. Э.Таненбаум, М.ван Стеен «Распределённые системы. Принципы и парадигмы»

  3. MSDN – библиотека официальной технической документации для разработчиков под ОС Microsoft Windows. [Электронный ресурс] – Режим доступа: https://docs.microsoft.com, свободный

Приложение а. Исходный код web - сервиса.

Код Service.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.Services;

using System.Data;

using System.Data.SqlClient;

[WebService(Namespace = "http://tempuri.org/")]

[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]

// Чтобы разрешить вызывать веб-службу из скрипта с помощью ASP.NET AJAX, раскомментируйте следующую строку.

// [System.Web.Script.Services.ScriptService]

public class Service : System.Web.Services.WebService

{

SqlConnection con1 = new SqlConnection("Data Source=ANGRY\\SQLEXPRESS;Initial Catalog=X;Persist Security Info=True;User ID=sa;Password=1701dmg");

SqlConnection con2 = new SqlConnection("Data Source=ANGRY\\SQLEXPRESS;Initial Catalog=Y;Persist Security Info=True;User ID=sa;Password=1701dmg");

public Service()

{

//Раскомментируйте следующую строку в случае использования сконструированных компонентов

//InitializeComponent();

}

[WebMethod]

public string HelloWorld()

{

return "Привет всем!";

}

[WebMethod]

public List<string> GetMonth()

{

SqlDataAdapter da = new SqlDataAdapter("gm", con1);

da.SelectCommand.CommandType = CommandType.StoredProcedure;

DataTable dt = new DataTable();

da.Fill(dt);

List<string> list = dt.AsEnumerable().Select(r => r.Field<string>("Month")).ToList();

return list;

}

[WebMethod]

public DataSet GetDate(string month)

{

DataSet ds = new DataSet();

SqlDataAdapter da = new SqlDataAdapter("gt", con1);

da.SelectCommand.CommandType = CommandType.StoredProcedure;

da.SelectCommand.Parameters.Add(new SqlParameter("@Month", SqlDbType.NVarChar, 10)).Value = month;

da.Fill(ds);

return ds;

}

[WebMethod]

public DataSet GetDate1(string month)

{

DataSet ds = new DataSet();

SqlDataAdapter sd = new SqlDataAdapter("gt", con2);

sd.SelectCommand.CommandType = CommandType.StoredProcedure;

sd.SelectCommand.Parameters.Add(new SqlParameter("@Month", SqlDbType.NVarChar, 10)).Value = month;

sd.Fill(ds);

return ds;

}

}