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

Гостевая книга

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

Для создания данной страны потребуется таблица Book, имеющая следующую структуру

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

Расположите на странице два текстовых поля и две надписи. Для отображения данных Вам потребуется ЭУ GridView , находящийся на панели ToolBox в разделе Data. Можно добавить валидаторы для проверки факта ввода данных в поля.

Ключевое поле (IDBook) спрячьте с вывода на экран. Измените подписи полей, выводимых на страницу.

Примечание. Страница будет смотреться намного лучше, если заранее создать запрос. Пример запроса смотри в разделе создания новостной ленты.

Программный код

Imports System.Data.OleDb

Partial Class Book

Inherits System.Web.UI.Page

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click

If IsPostBack = False Or IsValid = False Then Exit Sub

' Здесь можно записать введенные пользователем

' сведения в базу данных.

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

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

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

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

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 Book (Guest, Book_page, book_date) VALUES ('" & TextBox1.Text & "', '" & TextBox2.Text & "', '" & DateTime.Now.Date & "')"

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

COMMAND.CommandText = SQL_запрос

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

COMMAND.Connection = CONNECTION

Try ' Выполнение команды SQL, то есть ЗАПИСЬ В БД:

COMMAND.ExecuteNonQuery()

'Response.Write("<br><br>В таблицу БД посещений добавлена запись")

Catch ex3 As Exception

Response.Write("<br><br>" & ex3.Message)

End Try

CONNECTION.Close()

' Перенаправление на уже разрешенную страницу:

Response.Redirect("book.aspx")

End Sub

End Class

Создание страницы регистрации

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

На данной странице осуществляется проверка достоверности ввода имени, адреса Email, URL- адреса и пароля при помощи валидаторов.

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

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

  • Для контроля обязатедьности ввода используются RequeredFildValidator

  • Для контроля полей Пароль и Подтверждение пароля используется CjmpareValidator, который будет сравнивать эти поля.

  • .Для контроля формата ввода на соответствие заданному шаблону используются RegularEpressionValidator

Страница в рабочем состоянии перед вводом данных

Рассмотрим работу страницы и работу валидаторов.

Неправильно введен адрес электронной почты

Сработала проверка URL

Не совпадают пароли

Данные введены корректно

Свойства для каждого из элементов можно задавать как программным способом, так и в режиме Конструктора при помощи окна свойств.

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

Событие загрузка страницы

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

Page.Title = "заполните следующие поля:"

Label1.Text = "имя"

Label2.Text = "E-mail"

Label3.Text = "Персональная Web страница"

Label4.Text = "Пароль"

Label5.Text = "Подтверждение пароля"

TextBox4.TextMode = TextBoxMode.Password

TextBox5.TextMode = TextBoxMode.Password

RequiredFieldValidator1.ControlToValidate = "TextBox1"

RequiredFieldValidator1.ErrorMessage = "Следует заполнить это поле"

RequiredFieldValidator2.ControlToValidate = "TextBox2"

RequiredFieldValidator2.ErrorMessage = "Следует заполнить это поле"

RequiredFieldValidator3.ControlToValidate = "TextBox3"

RequiredFieldValidator3.ErrorMessage = "Следует заполнить это поле"

RequiredFieldValidator4.ControlToValidate = "TextBox4"

RequiredFieldValidator4.ErrorMessage = "Следует заполнить это поле"

End Sub

Остальные валидаторы рекомендую заполнить при помощи окна свойств.

Сравнение полей пароль и подтверждение пароля

Проверка формата ввода

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

Обратите внимание, т.к. данные будут записываться в БД в начале модуля необходимо добавить строку

Imports System.Data.OleDb

Partial Class registration

Кнопка Готово

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click

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

'проверка загружена ли страница первый раз IsPostBack = False

' повторная отправка IsPostBack = True

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

' Запись в базу данных только при повторной отправке

' и при достоверных данных:

If IsPostBack = False Or IsValid = False Then Exit Sub

' Здесь можно записать введенные пользователем

' сведения в базу данных.

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

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

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

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

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 S_user (NameU, Parol, Email, WebPage) VALUES ('" & TextBox1.Text & "', '" & TextBox4.Text & "', '" & TextBox2.Text & "', '" & TextBox3.Text & "')"

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

COMMAND.CommandText = SQL_запрос

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

COMMAND.Connection = CONNECTION

Try ' Выполнение команды SQL, то есть ЗАПИСЬ В БД:

COMMAND.ExecuteNonQuery()

Response.Write("<br><br>В таблицу БД посещений добавлена запись")

Catch ex3 As Exception

Response.Write("<br><br>" & ex3.Message)

End Try

CONNECTION.Close()

' Перенаправление на уже разрешенную страницу:

Response.Redirect("login.aspx")

End Sub