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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Web-службы

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


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

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


Проект Анкета
Проект Подробности
Проект Поиск магазина


В этой процедуре бъявляется переменная для хранения кода ID текущего вопроса:

    Dim TempID as String

Затем задается ID анкеты. Для просмотра результатов другого опроса следует изменить значение этой переменной:

    Application("SurveylD") - 1

Вначале устанавливается соединение с базой данных:

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

и выбирается название анкеты:

    DBCommand = New OleDbDataAdapter _
    ("Select SurveyName, Surveylnstructions " _
    & "From Surveys Where SurveylD = " _
    & Application("SurveylD"), DBConn)
    DBCommand.Fill(DSPageData, _
    "Surveylnfo")

которое помещается в элемент управления Label:

    IblTitle.Text = "<center>" _
    & DSPageData.Tables("Surveylnfo"). _
    Rows(0).Item("SurveyName") & "</center>"

После этого извлекаются все вопросы анкеты:

    DBCommand = New OleDbDataAdapter _
    ("Select SurveyQuestionID, SurveyQuestionLong " _
    & "From SurveyQuestions Where SurveylD = " _
    & Application("SurveylD"), DBConn)
    DBCommand.Fill(DSPageData, _
    "SurveyQuestions")

Далее начинается внешний цикл, который позволит обработать каждый из вопросов:

    For I = 0 to DSPageData.Tables("SurveyQuestions"). _
    Rows.Count - 1

Текст каждого вопроса помещается в объект LiteralControl:

    Dim IcHTML = New LiteralControl
    IcHTML.Text = "<b>" _ &
    DSPageData.Tables("SurveyQuestions"). _ Rows (I) .Item(",SurveyQuestionShort")
    & "</B><BR>"

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

    pnlQuestions.Controls.Add(IcHTML)- Теперь ID

текущего вопроса присваивается временной переменной:

    TempID =
    DSPageData.Tables("SurveyQuestions"). _
    Rows(I).Item("SurveyQuestionID")

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

    DBCommand = New OleDbDataAdapter _
    ("Select SurveyResponse, " _
    & "Count(SurveyResponselD) as TheCount " _
    & "From SurveyResponses Where SurveyQuestionID = " _
    & TempID & " Group By SurveyResponse " _
    & "Order By Count(SurveyResponselD) DESC" _
    , DBConn)

Результаты запроса помещаются в объект DataSet:

    DBCommand.Fill(DSPageData, _
    TempID)

Далее начинается внутренний цикл, предназначенный для обработки всех ответов:

    For J - 0 to DSPageData.Tables(TempID). _
    Rows.Count - 1

Текст ответа и количество раз, которое он был выбран, присваиваются объекту

    LiteralControl:
    Dim lcHTML2 - New LiteralControl
    lcHTML2.Text - DSPageData.Tables(TempID).
    Rows(J).Item("SurveyResponse") & ": " _
    & DSPageData.Tables(TempID). _
    Rows(J).Item("TheCount") & "<br>"

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

    pnlQuestions.Controls.Add(lcHTML2)

перед переходом к обработке следующего ответа:

    Next

По завершении обработки всех ответов на вопрос добавляются разделительные теги HTML:

    Dim lcHTML3 = New LiteralControl
    IcHTMLS.Text = "<br><br>"

в элемент управления Panel:

    pnlQuestions.Controls.Add(IcHTMLS)

после чего осуществляется переход к следующему вопросу:

    Next

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

При необходимости использовать в этом проекте базу данных Access вместо SQL Server достаточно лишь заменить строку связи с базой данных SQL Server

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

строкой связи с базой данных Access

    DBConn = New
    01eDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;" _
    & "DATA SOURCE="
    & Server.MapPath("/INetBook/C3/Survey/"
    & "Access/C3Survey.mdb;"))

Hosted by uCoz