Чтение онлайн

на главную - закладки

Жанры

C# для профессионалов. Том II

Ватсон Карли

Шрифт:

protected void submitButton_Click(object sender, System.EventArgs e) {

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

validator.Enabled = true;

 }

 this.Validated);

 if (this.IsValid) {

 } else {

validationSummary.Enabled = true;

 }

}

В результате этого эффективно отключается проверка на клиентской стороне, что стоит затраченных

усилий, так как предоставляет дополнительное удобство использования.

ADO.NET и связывание данных

Созданное в предыдущем разделе приложение формы Web является полностью функциональным, но содержит только статические данные. Кроме того, событие процесса заказа не содержит устойчивых данных события. Чтобы решить обе эти проблемы, можно воспользоваться ADO.NET и получить доступ к данным, хранящимся в базе данных, так чтобы можно было сохранять и извлекать данные события вместе со списками помещений и служителей.

Соединение данных делает процесс извлечения данных еще легче. Элементы управления, такие как поля списков (и некоторые из более специальных элементов управления) готовы к использованию этой техники. Они могут быть связаны с любым объектом, который предоставляет интерфейс

IEnumerable
,
ICollection
или
IListSource
, что включает объекты
DataTable
.

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

Модернизация приложения заказа помещения

Создадим новое приложение Web с именем

PCSWebApp3
и скопируем код из созданного ранее приложения
PCSWebApp2
. Прежде чем начать новый код, давайте рассмотрим базу данных, к которой мы будем обращаться.

База данных

Для этого примера используем базу данных Microsoft Access с именем

PCSWebApp3.mdb
, которую можно найти вместе с загружаемым кодом для этой книги. Для учета масштаба предприятия имеет смысл использовать базу данных SQL Server, но хотя используемая техника практически одинакова, но Access все же облегчает процесс тестирования. В ходе изложения будут показаны необходимые различия в коде, когда они возникнут. Представленная база данных содержит три таблицы:

□ 

Attendees
содержит список возможных почетных гостей событий.

□ 

Rooms
содержит список возможных помещений для событий.

□ 

Events
содержит список заказанных событий.

Attendees

Таблица

Attendees
содержит следующие столбцы:

Столбец Тип Примечания
ID
AutoNumber, первичный ключ Идентификационный номер почетного гостя
Name
Text, необходимое значение, 50 символов Имя почетного гостя
Email Text, необязательное значение, 50 символов Адрес e-mail почетного гостя

База данных позволяет хранить сведения о 20 почетных гостях, каждый из которых может иметь адрес e-mail. Другое приложение может автоматически посылать письмо почетным гостям после выполнения заказа. Читателям предлагается реализовать такое приложение в качестве упражнения.

Rooms

Таблица

Rooms
содержит следующие столбцы:

Столбец Тип Примечания
ID
AutoNumber, первичный ключ Идентификационный номер помещения
Room
Text, требуемое значение, 50 символов Название помещения
Events

Таблица

Events
содержит следующие столбцы:

Столбец Тип Примечания
ID
AutoNumber, первичный ключ Идентификационный номер события
Name
Text, требуемое значение, 255 символов Название события
Room
Number, требуемое значение Идентификатор помещения для события
AttendeeList
Memo, требуемое значение Список имен почетных гостей
EventData
Date/Time, требуемое значение Дата события

Несколько событий представлены в загружаемой базе данных.

Соединение с базой данных

Два элемента управления, которые мы хотели бы связать с данными, —

attendeeList
и
roomList
. Чтобы сделать это, мы должны задать свойства
DataSource
этих элементов управления как таблицы, содержащие данные. Код должен загрузить данные в эти таблицы и выполнить соединение. Оба эти элемента управления имеют также свойства
DataTextField
и
DataValueField
, которые определяют, какие столбцы использовать для вывода элементов списка и задания свойств
value
, соответственно. В обоих случаях можно задать эти свойства во время проектирования как
Name
и
ID
, что будет использоваться, как только задается свойство
DataSource
для заполнения элементами списка элемента управления.

Теперь мы можем сделать это в построителе форм Web. Удалите существующие записи из кода ASP.NET для этих элементов управления. Теперь что объявления будут выглядеть следующим образом:

...

<asp:dropdownlist id="roomList" runat="server" width="160px" datatextfield="Room" datavaluefield="ID" / >

...

<asp:listbox id="attendeeList" runat="server" width="160px" selectionmode="Multiple" rows="6" datatextfield="Name" datavaluefield=" " >

Следующая задача состоит в создании соединения с базой данных. Существует несколько способов это сделать. Как мы видели в главе ADO.NET ранее, обычно для создания нового соединения используется окно Server Explorer. Так как мы работаем с Access, то тип провайдера для этого соединения будет Microsoft Jet 4.0 OLE DB Provider. Когда это будет задано в окне сервера, мы сможем перетащить соединение на форму Web, что добавит объект

Data.OleDb.OleDbConnection
к форме с именем
oleDbConnection1
:

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

Ворон. Осколки нас

Грин Эмилия
2. Ворон
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Ворон. Осколки нас

Маршал Советского Союза. Трилогия

Ланцов Михаил Алексеевич
Маршал Советского Союза
Фантастика:
альтернативная история
8.37
рейтинг книги
Маршал Советского Союза. Трилогия

Мастер Разума III

Кронос Александр
3. Мастер Разума
Фантастика:
героическая фантастика
попаданцы
аниме
5.25
рейтинг книги
Мастер Разума III

Запечатанный во тьме. Том 1. Тысячи лет кача

NikL
1. Хроники Арнея
Фантастика:
уся
эпическая фантастика
фэнтези
5.00
рейтинг книги
Запечатанный во тьме. Том 1. Тысячи лет кача

Боярышня Евдокия

Меллер Юлия Викторовна
3. Боярышня
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Боярышня Евдокия

Ну, здравствуй, перестройка!

Иванов Дмитрий
4. Девяностые
Фантастика:
попаданцы
альтернативная история
6.83
рейтинг книги
Ну, здравствуй, перестройка!

Гарем на шагоходе. Том 1

Гремлинов Гриша
1. Волк и его волчицы
Фантастика:
боевая фантастика
юмористическая фантастика
попаданцы
5.00
рейтинг книги
Гарем на шагоходе. Том 1

Начальник милиции. Книга 4

Дамиров Рафаэль
4. Начальник милиции
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Начальник милиции. Книга 4

Курсант: назад в СССР

Дамиров Рафаэль
1. Курсант
Фантастика:
попаданцы
альтернативная история
7.33
рейтинг книги
Курсант: назад в СССР

Законы Рода. Том 4

Flow Ascold
4. Граф Берестьев
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Законы Рода. Том 4

Санек 4

Седой Василий
4. Санек
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Санек 4

Мастер Разума VII

Кронос Александр
7. Мастер Разума
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Мастер Разума VII

Пограничная река. (Тетралогия)

Каменистый Артем
Пограничная река
Фантастика:
фэнтези
боевая фантастика
9.13
рейтинг книги
Пограничная река. (Тетралогия)

Владеющий

Злобин Михаил
2. Пророк Дьявола
Фантастика:
фэнтези
8.50
рейтинг книги
Владеющий