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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Web-службы

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


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

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


Проект Закладки
Проект Регистрация
Проект Предпочтения


В нашем случае повторно выводятся заголовки столбцов и закрывается HTML таблица:

    <TR style="Background-Color:DFECD8">
    <TD><B>Page Name and Link</B></TD>
    <TD><B>Description</B></TD>R</TR>
    </Table>
    </footertemplate>
    </ASP:Repeater>

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

    Sub Page_Load(ByVal Sender as Object, ByVal E as EventArgs)
    Dim DBConn as OleDbConnection
    Dim DBCommand As OleDbDataAdapter
    Dim DSBookmarks as New DataSet
    Dim TheQuery as String
    Dim MyCookieCollection as HTTPCookieCollection
    Dim i as integer
    MyCookieCollection - Request.Cookies
    For i = 0 to MyCookieCollection.Count - 1
    If Left(MyCookieCollection.Item(i).Name,8) _
    = "Bookmark" Then
    TheQuery - TheQuery & "PagelD = " _
    & MyCookieCollection.Item(i).Value _
    & " or "
    End If
    Next
    If Len(TheQuery) > 0 Then
    TheQuery - Left(TheQuery, Len(TheQuery) - 3)
    TheQuery =• "Select PageName, PageLocation, " _
    & "PageDescription From Pagelnfo Where " _
    & TheQuery & " Order By PageName"
    DBConn = New OleDbConnection("Provider=sqloledb;" _
    & "server=localhost;" _
    & "Initial Catalog=INETC12;"
    & "User Id=sa;" _
    4 "Password=yourpassword;")
    DBCommand = New OleDbDataAdapter _
    (TheQuery,DBConn)
    DBCommand.Fill(DSBookMarks, _
    "ThePagelnfo")
    repBookmarks.DataSource = _
    DSBookmarks.Tables("ThePagelnfo").DefaultView
    repBookmarks.DataBind()
    End If
    End Sub

В данной процедуре мы задаем строковую переменную для хранения временного запроса:

    Dim TheQuery as String

переменную для хранения списка файлов cookie посетителя:

    Dim MyCookieCollection as HTTPCookieCollection

и переменную цикла:

    Dim i as integer

После этого формируется список файлов cookie посетителя:

    MyCookieCollection = Request.Cookies

и начинается цикл по обработке каждого такого файла:

    For i = 0 to MyCookieCollection.Count - 1

При сохранении закладок в виде файлов cookie на компьютере посетителя название каждого такого файла начинается со слова Bookmark. Поэтому теперь мы должны проверить, начинается ли имя файла с этого слова:

    If Left(MyCookieCollection.Item(i).Name,8) _
    = "Bookmark" Then

Если это один из файлов-закладок, то его имя добавляется в строку формируемого запроса. Затем идентификатор каждой отмеченной закладкой страницы включается в предложение where запроса, что позволяет получить записи из базы данных:

    TheQuery = TheQuery & "PagelD = " _
    & MyCookieCollection.Item(i).Value _
    & " or "

После этого обрабатывается следующий файл cookie. По завершении цикла необходимо проверить, найдены ли закладки посетителя:

    If Len (TheQuery) > 0 Then

и если это так, то из строки запроса нужно удалить находящееся в конце ключевое слово Or:

    TheQuery = Left(Thefluery, Len(TheQuery) - 3)

Далее в строку запроса добавляются предложения Select и Order:

    TheQuery = "Select PageName, PageLocation, "
    & "PageDescription From Pagelnfo Where " _
    & TheQuery & " Order By PageName"

Теперь мы можем осуществить соединение с базой данных:

    DBConn = New 01eDbConnection("Provider=sqloledb;" _
    & "server=localhost;" _
    & "Initial Catalog-INETC12;"
    & "User Id=sa;"
    & "Password=yourpassword;")

извлечь соответствующие записи о страницах:

    DBCommand=- New OleDbDataAdapter _
    (TheQuery,DBConn)

и поместить их в объект DataSet:

    DBCommand.Fill(DSBookMarks, _
    "ThePagelnfo")

который затем будет связан с элементом управления Repeater:

    repBookmarks.DataSource = _
    DSBookmarks.Tables("ThePagelnfо").DefaultView
    repBookmarks.DataBind()

Изменение кода для Access

Если вместо базы данных SQL-сервера будет использоваться база данных Access, в коде страницы Закладки следует изменить строку связи с базой

    DBConn = New OleDbConnection("Provider=sqloledb;" _
    & "server=localhost;" _
    & "Initial Catalog=INETC12;"
    & "User Id=sa;" _
    & "Password=yourpassword;")

таким образом, чтобы в ней указывалось имя соответствующего провайдера и имя базы данных Access:

    DBConn = New.01eDbConnection("PROVIDER=Microsoft.Jet.Oledb.4.0;" _
    & "DATA SOURCE="
    & Server.MapPath("/InetBook/C12/Bookmarks/" _
    & "Access/C12/Bookmarks.mdb/"))

Hosted by uCoz