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

Продажа товара (услуги) – связь 1:м.

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

Данная операция доступна только авторизированным пользователям.

Для осуществления процедуры продажи картины потребуется создать три страницы содержимого.

Первая страница (page4.aspx) позволяет выполнять поиск картин.

Первая страница содержит следующие ЭУ

ЭУ DropDownList с именемTypeDropDownList

ЭУ GridView1

Процедура фильтрации

Protected Sub DropDownList1_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TypeDropDownList.TextChanged

'когда в поле со списком выбирается тип картины на сервер отправляется запрос на выборку данных

'создание запроса

AccessDataSource2.SelectCommand = "SELECT IDGood, Название, IDType, Цена , Год FROM Picture WHERE IDType=" & TypeDropDownList.SelectedValue

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

Dim oArg As New System.Web.UI.DataSourceSelectArguments

AccessDataSource2.Select(oArg)

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

GridView1.DataBind()

End Sub

Процедура просмотра подробной информации о картине.

Protected Sub GridView1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles GridView1.SelectedIndexChanged

' Вывод кода, выбранной картины

'MsgBox(GridView1.SelectedValue)

'Создание сессии

Session("IDGood") = GridView1.SelectedValue

'перенаправляем на страницу с подробной информацией

Response.Redirect("Page5.aspx")

End Sub

При нажатии на кнопку просмотреть открывается вторая страница (page5.aspx).

Код картины отправляется в сессию.

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

Страница имеет ЭУ Image для вывода изображения и DetailView для просмотра подробной информации. DetailView в качестве источника данных использует запрос Q_picture.

Процедура загрузки страницы.

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

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

Dim IDPicture As Integer = Convert.ToInt32(Session("IDGood"))

'Заполнение ЭУ GridView

AccessDataSource1.SelectCommand = "SELECT * FROM Q_picture WHERE IDGood=" & IDPicture

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

Dim oArg As New System.Web.UI.DataSourceSelectArguments

AccessDataSource1.Select(oArg)

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

DetailsView1.DataBind()

'=======================

'Отображение рисунка при помощи ЭУ 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

End Sub

Процедура продажи картины.

'продажа картины

Protected Sub Button3_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button3.Click

'берем из сессии код картины и код пользователя

Dim IDPicture As Integer = Convert.ToInt32(Session("IDGood"))

Dim IDuser As Integer = Convert.ToInt32(Session("IDU"))

If IDuser = 0 Then

Me.Label6.Text = "Для офрмления заказа необходимо зарегистрироваться"

Exit Sub

End If

'MsgBox(IDuser)

Dim IDOrder As Long

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

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

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

CONNECTION.Open()

Dim SQL_запрос As String

Dim COMMAND As New OleDbCommand

' ДОБАВЛЕНИЕ ЗАПИСИ О картине в БД:

' Строка SQL-запроса:

Dim s1 As String, s2 As String

' INSERT INTO Sale ( IDGood, iduser )Values (4,1);

SQL_запрос = "INSERT INTO Sale (IDGood, iduser ) VALUES (" & IDPicture & "," & IDuser & ")"

'Response.Write("<br><br> " & SQL_запрос)

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

COMMAND.CommandText = SQL_запрос

' Для добавления записи в БД эта команда обязательна:

COMMAND.Connection = CONNECTION

COMMAND.ExecuteNonQuery()

'Response.Write("<br><br> Продано")

Me.Label6.Text = "Картина продана"

'=====================

SQL_запрос = "SELECT IDDogov FROM Sale WHERE iduser=" & IDuser & " ORDER BY IDDogov DESC"

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

'SELECT IDDogov FROM Sale WHERE iduser=1 ORDER BY IDDogov DESC;

COMMAND.CommandText = SQL_запрос

COMMAND.Connection = CONNECTION

Dim DATAREADER As OleDbDataReader

DATAREADER = COMMAND.ExecuteReader

If DATAREADER.Read = True Then

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

IDOrder = DATAREADER.GetValue(0)

End If

'===================

Me.Label6.Text = "Картина продана номер заказа " & IDOrder

CONNECTION.Close()

'помещаем в сессию номер договора и переходим на страницу подробная инф о заказе

Session.Add("IDOrder", IDOrder)

Response.Redirect("Page6.aspx")

End Sub

Кнопка <Купить> доступна только авторизированным пользователям. После успешной покупке отображается страница с подробной информацией о покупке(page6.aspx).

Процедура загрузки страницы

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

' получение кода договора(заказа) из сессии

Dim IDOrder As Integer = Convert.ToInt32(Session("IDOrder"))

Dim SQL_Select As String

'Заполнение ЭУ GridView

SQL_Select = "SELECT * FROM Q_Order WHERE IDDogov=" & IDOrder

' MsgBox(SQL_Select)

AccessDataSource1.SelectCommand = SQL_Select

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

Dim oArg As New System.Web.UI.DataSourceSelectArguments

AccessDataSource1.Select(oArg)

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

DetailsView1.DataBind()

'=======================

'Отображение рисунка при помощи ЭУ 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 Q_Order1 WHERE (IDDogov =" & IDOrder & " )"

' Создание объекта 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

End Sub