Знакомство с ASP.NET

Что еще нужно знать об ASP.NET

Взаимодействие с клиентом

Создание интерактивных приложений для intranet-сетей

Расширение функциональных возможностей intarnet

Создание спортивного Web-узла

Управление содержимым Web-узла

Отслеживание действий посетителейa

Виртуальный университет

 Использование специализированных приложений на узлах компаний

Виртуальная риэлтерская контора

Персонализация узла для посетителей

Интерактивные возможности узла

Увеличение посещаемости узла

Создание интерактивного магазина

Создание интерактивного аукциона

Web-службы

Справочник по языку ASP.NET/VB.


Сайт создан по материалам книги Г. Бучека "Учебный курс по ASP.NET". Москва: BHV, 2002.

Создатель сайта-выпускник курсов web-дизайнеров Сафоновского Колледжа Информационных Технологий Максим Котликов


Проект Чат
Проект Запрос SQL
Проект Совет дня
Проект Полезные ссылки


Проект Совет дня

Приложение Совет дня отображает текст совета дня. Хотя совет можно выводить на любую страницу, мы помещаем таковой на страницу Совет дня.

При рассмотрении этого приложения обратите внимание на использование объекта Random с целью получения случайного числа для выбора совета.

Описание проекта

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

База данных проекта

Таблица базы данных проекта хранит заголовок и текст совета. Обзор полей таблицы Tips дан в табл.


Страница Совет дня

Поля таблицы Tips (файл Tips.txt)
Имя поля Тип данных Примечания
TIpID int Первичный ключ, уникальный идентификатор
TlpTitle varchar Заголовок совета. Длина — 50 символов
TipText varchar Текст совета. Длина — 255 символов

Код проекта

Код проекта Совет дня состоит из одной ASP.NET-страницы, которая будет описана в этом разделе.

Страница Совет дня

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

Элемент управления Label используется для отображения текста заголовка:

    <asp: Label
    id="lblTitle"
    BorderWidth="5px"
    Borders tyle=6
    Width=" 90%"
    Font-Size="25pt" Font-Name="Trebuchet MS"
    Text="<CENTER>CoBei дня</СЕМТЕК>"
    runat=" server"

Еще один элемент Label служит для отображения текста совета:

    <asp: Label
    id="lblMessage"
    BorderWidth="3px"
    BorderStyle=6
    Font-Size="12pt"
    Font-Name="Trebuchet MS"
    Width="40%"
    runat="server"
    />

Код страницы содержит единственную процедуру, которая выполняется при загрузке страницы:

    Sub Page_Load(ByVal Sender as Object, ByVal E as EventArgs)
    Dim DBConn as OleDbConnection
    Dim DBCommand As OleDbDataAdapter
    Dim DSTip as New DataSet
    Dim MyRandom as New Random()
    Dim RowNumber as Long
    If Len(Application("TipDate")) = 0 Then
    Application("TipDate") = Today()
    DBConn = New OleDbConnection("Provider=sqloledb;" _
    & "server=localhost;" _
    & "Initial Catalog=INETC13;"
    & "User Id=sa;" _
    & "Password=yourpassword;")
    DBCommand = New OleDbDataAdapter _
    ("Select TipTitle, TipText from " _
    & "Tips",DBConn)
    DBCommand.Fill(DSTip, _
    "Tips")
    RowNumber = MyRandom.Next _
    (0, DSTip.Tables("Tips").Rows.Count)
    Application("CurrentTip") = "<B>" _ & DSTip.TablesC'Tips").Rows(RowNumber).Item("TipTitle") _
    & "</BÞБBR>" _
    & DSTip.Tables("Tips").Rows(RowNumber).Item("TipText")
    Elself Application("TipDate") <> TodayO Then
    Application("TipDate") = TodayO
    DBConn = New OleDbConnection("Provider-sqloledb;" _
    & "server=localhost;" _
    & "Initial Catalog=INETC13;"
    & "User Id=sa;" _
    & "Password=yourpassword;")
    DBCommand = New OleDbDataAdapter _
    ("Select TipTitle, TipText from " _
    & "Tips",DBConn)
    DBCommand.Fill(DSTip, _
    "Tips")
    RowNumber = MyRandom.Next _
    (0, DSTip.Tables("Tips").Rows.Count)
    Application("CurrentTip") = "<B>" _
    & DSTip. Tables ("Tips") .Rows (RowNumber) . Item ("TipTitle".) _
    & "</B><BR>" _
    & DSTip.Tables("Tips").Rows(RowNumber).Item("TipText")
    End If
    IblMessage.Text = Application("CurrentTip")
    End Sub

В процедуре понадобятся объекты для работы с базой данных:

    Dim DBConn as OleDbConnection
    Dim DBCommand As OleDbDataAdapter
    Dim DSTip as New DataSet

Помимо этого, потребуется объект Random для формирования случайного числа:

    Dim MyRandom as New Random))

Данная переменная будет содержать случайное число, предназначенное для выбора отображаемого совета:

    Dim RowNumber as Long

Прежде всего по наличию значения в этой переменной приложения осуществляется проверка того, запущено ли приложение:

    If Len(Application("TipDate")) - 0 Then

Если приложение только что запущено, данной переменной присваивается текущая дата:

    Application("TipDate") - Today()

Далее из базы данных извлекаются записи с данными советов:

    DBCommand = New OleDbDataAdapter _
    ("Select TipTitle, TipText from " _
    & "Tips",DBConn)

и передаются в объект DataSet:

    DBCommand.Fill(DSTip, _
    "Tips")

Затем необходимо случайным образом выбрать одну из записей. Для этого вызывается метод Next объекта Random. Первым параметром является наименьшее число, которое может быть получено (в данном случае — 0). Оно представляет собой наименьший номер строки в объекте DataSet. Второй параметр на единицу больше, чем максимально возможное число. Таким образом, если есть 10 записей с советами, диапазон случайных чисел будет составлять от 0 до 9. Произвольно выбранное число присваивается локальной переменной:

    RowNumber = MyRandom.Next _
    (О, DSTip.Tables("Tips").Rows.Count)

После этого в переменной приложения сохраняется запись с советом, имеющая упомянутый произвольный номер:

    Application("CurrentTip") = "<В>" _
    & DSTip.Tables("Tips").Rows(RowNumber).Item("TipTitle") _
    & "</B><BR>" _
    & DSTip.Tables("Tips").Rows(RowNumber).Item("TipText")

Далее проверяется, отличается ли текущая дата от даты первого отображения подсказки:

    Elself Application("TipDate") <> Today() Then

Если дата изменилась, значит, нужно извлечь новую запись с советом. Вначале текущая дата помещается в переменную приложения:

    Application("TipDate") = TodayO

Затем извлекается новая запись:

    DBCommand - New OleDbDataAdapter _
    ("Select TipTitle, TipText from " _
    & "Tips",DBConn)
    DBCommand.Fill(DSTip, _
    "Tips")

Вновь генерируется случайное число:

    RowNumber= MyRandom.Next _
    (О, DSTip.Tables("Tips").Rows.Count)
    Application("CurrentTip") = "<B>" _
    & DSTip.TablesC'Tips").Rows(RowNumber).Item("TipTitle") _
    & "</B><BR>"
    & DSTip.Tables("Tips").Rows(RowNumber).ItemC'TipText")

Если же дата не изменилась, новая запись не извлекается. Совет дня отображается в элементе Label:

    IblMessage.Text - Application("CurrentTip")

Hosted by uCoz