- •Создание структуры сайта Создание главной страницы
- •Подключение бд
- •Создание новостной ленты
- •Авторизация пользователя
- •Кодирование главной страницы
- •Создание панели навигации
- •Карта сайта
- •Наполнение сайта Создание новой страницы содержимого на основе MasterPage (Главной страницы).
- •Просмотр информации о товаре или услуге.
- •Создание страницы список выставок
- •Гостевая книга
- •Создание страницы регистрации
- •Продажа товара (услуги) – связь 1:м.
- •Продажа товара (услуги) – связь м:м.
- •Администрирование
- •Страница добавления картины
- •Редактирование списка товаров или услуг
Продажа товара (услуги) – связь м:м.
Имеется следующая схема данных.
Рассмотрим процедуру создания выставки и назначение картин на выставку. Обратите внимание, что сначала должна быть создана выставка и получен код выставки, и только затем возможно заполнение таблицы Exhibition_Picture.
В данном примере вся информация располагается на одной странице.
Создайте новую страницу содержимого.
Задайте табличную разметку и расположите следующие ЭУ, как показано на рисунке.
Label1 |
Label6 |
TextBox3 |
|
Calendar1 |
Label7 |
TextBox4 |
|
Label8 |
TextBox5 |
||
Label9 |
TextBox6 |
||
Button4 Button3 |
Label10 |
||
DropDownList1 |
DropDownList2 |
||
GridView2 GridView3 |
Способ создания таблицы выберите самостоятельно.
В метке Label1 разместите текст «Ввод начальной даты».
В метке Label6 разместите текст «Дата начала».
В метке Label7 разместите текст «Дата окончания».
В метке Label8 разместите текст «Тема выставки».
В метке Label9 разместите текст «место проведения».
В метке Label10 текст отсутствует.
Обратите внимание на свойство DataKeyNames ЭУ GridView, которое необходимо установить вручную.
Для ЭУ DropDownList необходимо установить свойство AutoPostBack в положение True.
GridView2 связан с запросом Q_picture_Sell |
|
GridView3 связан с запросом Q_exhibition_picture |
|
ЭУ DropDownList1 связан с таблицей Тип |
|
ЭУ DropDownList2 связан с запросом QAuthor |
|
При загрузке страницы часть ЭУ скрывается с вывода на экран.
УЭ календарь(Calendar1) используется для автоматического заполнения начала и окончания выставки (TextBox3 и TextBov4) . Процедура проверяет состояние метки Label1.
При загрузке страницы страница выглядит следующим образом.
Создавать выставку может только авторизированный пользователь. При нажатии на кнопку производится проверка авторизации пользователя. Если пользователь не авторизирован отображается сообщение о необходимости авторизации.
Protected Sub Button3_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button3.Click
Dim IDExh As Long 'код выставки
'Проверка авторизации пользователя
Dim IDuser As Integer = Convert.ToInt32(Session("IDU"))
If IDuser = 0 Then
Me.Label10.Text = "Для оформления заказа необходимо зарегистрироваться"
Exit Sub
End If
' Строка подключения:
Dim СтрокаПодкл As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("Web.mdb")
' Создание экземпляра объекта Connection:
Dim CONNECTION = New OleDbConnection(СтрокаПодкл)
Dim d1 As String, d2 As String, t As String, m As String
'считали данные формы
d1 = CDate(Me.TextBox3.Text)
d2 = CDate(Me.TextBox4.Text)
t = Me.TextBox5.Text
m = Me.TextBox6.Text
Try ' Открытие подключения:
CONNECTION.Open()
Catch ex2 As Exception
Response.Write("<br><br>" & ex2.Message)
End Try
Dim SQL_запрос As String
Dim COMMAND As New OleDbCommand
' ДОБАВЛЕНИЕ ЗАПИСИ О выставке В БД:
' Строка SQL-запроса:
SQL_запрос = "INSERT INTO EXHIBITION (Dateb, DateE, Thema, [Where] ) VALUES ('" & d1 & "', '" & d2 & "', '" & t & "', '" & m & "')"
'MsgBox(SQL_запрос)
' Создание объекта Command с заданием SQL-запроса:
COMMAND.CommandText = SQL_запрос
' Для добавления записи в БД эта команда обязательна:
COMMAND.Connection = CONNECTION
Try ' Выполнение команды SQL, то есть ЗАПИСЬ В БД:
COMMAND.ExecuteNonQuery()
'Response.Write("<br><br>В таблицу добавлена запись")
Me.Label10.Text = "Выставка создана, выберите картины"
Me.GridView2.Visible = True
Me.DropDownList1.Visible = True
Me.DropDownList2.Visible = True
Me.Button4.Visible = True
Me.Button3.Visible = False
Catch ex3 As Exception
Response.Write("<br><br>" & ex3.Message)
End Try
'======================
'получение номера выставки
SQL_запрос = "SELECT IDexhibition FROM [EXHIBITION] ORDER BY IDexhibition DESC"
' Создание объекта Command с заданием SQL-запроса:
COMMAND.CommandText = SQL_запрос
COMMAND.Connection = CONNECTION
Dim DATAREADER As OleDbDataReader
DATAREADER = COMMAND.ExecuteReader
If DATAREADER.Read = True Then
'определение значения поля
IDExh = DATAREADER.GetValue(0)
End If
'===================
CONNECTION.Close()
'помещаем в сессию код выставки
Session.Add("IDExh", IDExh)
CONNECTION.Close()
End Sub
После создания выставки определяется код выставки и записывается в сессию, скрывается кнопка создания выставки и отображается кнопка <Просмотр> , а также отображается список картин ( GridView2 ).
Для удобства отбора предусмотрена фильтрация по технике создания и автору картины.
Фильтрация по технике создания.
'Фильтр по технике создания
Protected Sub DropDownList1_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DropDownList1.TextChanged
'когда в поле со списком выбирается тип картины на сервер отправляется запрос на выборку данных
'создание запроса
AccessDataSource1.SelectCommand = "SELECT * FROM Q_picture_Sell WHERE IDType=" & Me.DropDownList1.SelectedValue
'создание класса, который передается в качестве параметра методу Select
Dim oArg As New System.Web.UI.DataSourceSelectArguments
AccessDataSource1.Select(oArg)
'связывание полученных данных с компонентом GridView при помощи метода DataBind
GridView2.DataBind()
Me.Button4.Visible = True
Me.Button3.Visible = False
Me.GridView2.Visible = True
Me.DropDownList1.Visible = True
Me.DropDownList2.Visible = True
End Sub
Фильтрация по автору.
'фильтр по автору
Protected Sub DropDownList2_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DropDownList2.TextChanged
'когда в поле со списком выбирается тип картины на сервер отправляется запрос на выборку данных
'создание запроса
AccessDataSource1.SelectCommand = "SELECT * FROM Q_picture_Sell WHERE IDAuthor=" & Me.DropDownList2.SelectedValue
'создание класса, который передается в качестве параметра методу Select
Dim oArg As New System.Web.UI.DataSourceSelectArguments
AccessDataSource1.Select(oArg)
'связывание полученных данных с компонентом GridView при помощи метода DataBind
GridView2.DataBind()
Me.Button4.Visible = True
Me.Button3.Visible = False
Me.GridView2.Visible = True
Me.DropDownList1.Visible = True
Me.DropDownList2.Visible = True
End Sub
Гиперссылка <Выбор> в списке картин позволяет назначить картину на выставку.
Процедура выбора картины.
'Назначение картины на выставку
Protected Sub GridView2_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles GridView2.SelectedIndexChanged
'код выставки достаем из сессии
Dim IDExh As Integer = CLng(Session("IDExh"))
Dim idpict As Long
' Строка подключения:
Dim СтрокаПодкл As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("Web.mdb")
' Создание экземпляра объекта Connection:
Dim CONNECTION = New OleDbConnection(СтрокаПодкл)
idpict = Me.GridView2.SelectedValue
Try ' Открытие подключения:
CONNECTION.Open()
Catch ex2 As Exception
Response.Write("<br><br>" & ex2.Message)
End Try
Dim SQL_запрос As String
Dim COMMAND As New OleDbCommand
' ДОБАВЛЕНИЕ ЗАПИСИ В БД:
' Строка SQL-запроса:
SQL_запрос = "INSERT INTO [Exhibition_Picture ](IDpicture, IDexhibition ) VALUES (" & idpict & ", " & IDExh & ")"
' Создание объекта Command с заданием SQL-запроса:
COMMAND.CommandText = SQL_запрос
' Для добавления записи в БД эта команда обязательна:
COMMAND.Connection = CONNECTION
Try ' Выполнение команды SQL, то есть ЗАПИСЬ В БД:
COMMAND.ExecuteNonQuery()
'Response.Write("<br><br>В таблицу добавлена запись")
Me.GridView2.Visible = True
Catch ex3 As Exception
Response.Write("<br><br>" & ex3.Message)
End Try
CONNECTION.Close()
Me.Button4.Visible = True
Me.Button3.Visible = False
Me.GridView2.Visible = True
Me.DropDownList1.Visible = True
Me.DropDownList2.Visible = True
End Sub
После того, как картины были выбраны можно просмотреть список, выбранных картин.
Процедура просмотра картин.
'Просмотр картин на выставке
Protected Sub Button4_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button4.Click
Dim IDExh As Integer = CLng(Session("IDExh"))
Dim crit As String
crit = "SELECT * FROM [Q_Exhibition_Picture] WHERE IDexhibition=" & IDExh
AccessDataSource2.SelectCommand = crit
'создание класса, который передается в качестве параметра методу Select
Dim oArg As New System.Web.UI.DataSourceSelectArguments
AccessDataSource2.Select(oArg)
'связывание полученных данных с компонентом GridView при помощи метода DataBind
GridView3.DataBind()
Me.GridView2.Visible = False
Me.GridView3.Visible = True
End Sub