Столбец Тип Примечания
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:

public class WebForm1: System.Web.UI.Page {

 ...

 protected System.Data.OleDb.OleDbConnection oleDbConnection1;

Для соединения SQL Server будет добавлен объект SqlClient.SqlConnection.

В метод InitializeComponent() также добавится код для задания свойства ConnectionString формы oleDbConnection1, таким образом все будет готово для использования в коде.

Мы хотим выполнить соединение данных в обработчике событий Page_Load(), так что элементы управления будут полностью заполнены, когда мы захотим использовать их в других частях кода. Приступаем к считыванию данных из базы данных, независимо от того, выполняется ли в данный момент операция обратной отправки (даже если элементы управления списком будут сохранять свое содержимое с помощью viewstate), чтобы гарантировать, что мы имеем доступ ко всем данным, которые могут понадобиться, хотя нам и не нужно выполнять само соединение данных при обратной отправке. Это может показаться слегка расточительным, но читатель при желании может в качестве упражнения добавить дополнительную логику к коду для оптимизации такого поведения. Здесь мы сосредоточимся на том, как заставить все работать, не входя в практические детали.

Весь наш код будет помещен между вызовами методов Open() и Close() нашего объекта соединения:

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

 validationSummary.Enabled = false;

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

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

Отметить Добавить цитату