Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка.doc
Скачиваний:
6
Добавлен:
05.09.2019
Размер:
1.79 Mб
Скачать

Создание страницы список выставок

Имеется следующая схема данных

Обратите внимание, таблица Выставка (Exhibition) и таблица Картина (Picture) связаны при помощи таблицы Exhibition_picture, реализующей связь M:M.

Структура таблицы Picture

Необходимо создать страницу, позволяющую просматривать список выставок, список картин на выставке и подробную информацию о картине, включая ее изображение.

Для отображения информации о выставке будем использовать ЭУ список ListBox. Так как список и поле со списком могут отображать только содержимое одного поля необходимо создать запрос под именем Q_exhibition.

Далее создадим запрос под именем Q_exhibition_picture, объединяющий несколько таблиц.

Запрос Q_picture для вывода подробной информации о картине.

Создайте новую страницу содержимого.

Для удобства расположения элементов на странице создайте таблицу из 3-х строк и 2 –х столбцов.

Первая строка таблицы будет содержать заголовки.

<table>

<tr><td><h2>Список выставок</h2></td><td><h2>Картины на выставке</h2></td></tr>

В первой ячейке второй строки расположите ЭУ список ListBox с именем ListBox1 для вывода списка выставок.

Во второй ячейке второй строки расположите ЭУ GridView с именем GridView2 для вывода списка картин на выставке.

В первой ячейке третьей строки расположите ЭУ DetailsView с именем DetailsView1 для отображения подробной информации о картине.

И наконец во второй ячейке третьей строки расположите ЭУ Image с именем Image1 для отображения изображения картины.

Страница в режиме Конструктора

К ЭУ ListBox1 подключите, созданный ранее запрос Q_exhibition. Настройте в соответствии с рисунком свойства списка.

К ЭУ GridView2 подключите, созданный ранее запрос Q_exhibition_picture. Поля IDpicture и IDexhibition спрячьте с вывода на экран.

Теперь самое главное, так как таблица, на основе которой был создан запрос иметь составной первичный ключ необходимо установить свойство DataKeyNames ЭУ GridView2, выбрав поле IDpicture. Если это не выполнить, то будет невозможно отобразить подробную информацию о картине.

Самостоятельно добавьте кнопку выбора и отредактируйте текст.

К ЭУ DetailsView1 привяжите запрос Q_picture.

Кодирование страницы

Добавьте библиотеку для работы с БД.

При загрузке страницы часть ЭУ не видны.

Выделение строки в списке.

Выбор картины

Protected Sub GridView2_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles GridView2.SelectedIndexChanged

Dim crit As String

crit = "SELECT * FROM [Q_Picture] WHERE IDGood=" & GridView2.SelectedValue

'MsgBox(crit)

AccessDataSource3.SelectCommand = crit

'создание класса, который передается в качестве параметра методу Select

Dim oArg As New System.Web.UI.DataSourceSelectArguments

AccessDataSource3.Select(oArg)

'связывание полученных данных с компонентом GridView при помощи метода DataBind

DetailsView1.DataBind()

Me.DetailsView1.Visible = True

' получение кода картины

Dim IDPicture As Integer = GridView2.SelectedValue

'Отображение рисунка при помощи ЭУ Image

Dim myphoto As String

' Строка подключения:

Dim СтрокаПодкл As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("Web.mdb")

' Создание экземпляра объекта Connection

Dim CONNECTION = New OleDbConnection(СтрокаПодкл)

CONNECTION.Open()

' Строка SQL-запроса для проверки имени и пароля:

Dim SQL_запрос As String = "SELECT Фото FROM Picture WHERE (idgood =" & IDPicture & " )"

' Создание объекта Command с заданием SQL-запроса:

Dim COMMAND As New OleDbCommand

COMMAND.CommandText = SQL_запрос

COMMAND.Connection = CONNECTION

Dim DATAREADER As OleDbDataReader

DATAREADER = COMMAND.ExecuteReader

If DATAREADER.Read = True Then

'определение значения поля

myphoto = DATAREADER.GetValue(0)

End If

CONNECTION.Close()

Me.Image1.ImageUrl = myphoto

Me.Image1.Visible = True

End Sub