Вход/Регистрация
C# для профессионалов. Том II
вернуться

Ватсон Карли

Шрифт:

[WebMethod]

public int AddEvent(String eventName, String eventRoom, String eventAttendees, String eventDate) {

 ...

 int queryResult = insertCommand.ExecuteNonQuery;

 if (queryResult == 1) {

daEvents =

new System.Data.OleDb.OleDbDataAdapter(

"SELECT * FROM Events", oleDbConnection1);

Application.Lock;

ds = (DataSet) Application["ds"];

ds.Tables["Events"].Clear;

daEvents.Fill(ds, "Events");

Application["ds"] = ds;

Application.UnLock;

oleDbConnection1.Close;

 }

}

Наконец, мы возвращаем

queryResult
, позволяя клиенту узнать, что запрос был успешным:

[WebMethod]

public int AddEvent(String eventName, String eventRoom, String eventAttendees, String eventDate) {

 ...

 return queryResult;

}

Это завершает создание службы Web. Как и прежде, есть возможность протестировать эту службу, направляя браузер Web на файл

.asmx
, поэтому мы можем добавить записи и взглянуть на представление XML для
DataSet
, возвращаемое
GetData
, не создавая никакого клиентского кода.

Клиент приложения предварительного заказа помещения для проведения мероприятия

Используемый клиент является разработкой приложения Web

PCSWebApp3
из предыдущей главы. Назовем это приложение
PCSWebApp4
и воспользуемся кодом из
PCSWebApp3
в качестве начальной точки.

Сделаем два существенных изменения в проекте. Первое: удалим все непосредственные обращения к базе данных из этого приложения и воспользуемся вместо этого службой Web. Второе: введем хранилище уровня приложения из

DataSet
, возвращаемого из службы Web, которое обновляется только в случае необходимости, это значит, что на базу данных падает меньшая нагрузка.

Прежде всего в нашем новом приложении Web необходимо добавить ссылку Web на службу

PCSWebSrv2/Service1.asmx
. Это можно сделать точно таким же образом, как мы видели ранее в этой главе, определяя местонахождение файла
.vsdisco
и вызывая его
eventDataService
.

После этого добавляем код в

Global.asax
, по большей части, таким же образом, как это было сделано для службы Web. Этот код, однако, будет существенно проще. Сначала мы ссылаемся на службу Web и пространство имен
System.Data
:

namespace PCSWebApp4 {

 ...

 using System.Data;

 using eventDataService;

Затем заполняем множество данных (

dataset
) и помещаем его в хранилище данных уровня приложения с именем
ds
:

protected void Application_Start(Object sender, EventArgs e) {

 Service1 dataService = new Service1;

 DataSet ds = dataService.GetData;

 Application["ds"] = ds;

}

Теперь

DataSet
доступно для
всех
экземпляров
PCSWebApp4
, т.е. несколько пользователей могут читать данные без какого-либо обращения к службе Web, то есть к базе данных.

Теперь, когда имеется это

DataSet
, необходимо изменить
WebForm1.aspx.cs
для его использования. Прежде всего можно удалить объявления
oleDbConnection1
,
daAttendees
,
daRooms
и
daEvents
, так как не будет осуществляться никакого обращения к базе данных. Затем необходимо изменить
Page_Load
следующим образом:

private void Page_Load(object sender, System.EventArgs e) {

 validationSummary.Enabled = false;

 foreach (System.Web.UI.WebControls.WebControl validator in this.Validators) {

validator.Enabled = false;

 }

 ds = (DataSet)Application["ds"];

 attendeeList.DataSource = ds.Tables["Attendees"];

 roomList.DataSource = ds.Tables["Rooms"];

 eventTable = ds.Tables["Events"];

  • Читать дальше
  • 1
  • ...
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: