
Проект Анкета
Проект Подробности
Проект Поиск магазина
В этой процедуре понадобится объект Connection для подсоединения к базе данных:
Dim DBConn as OleDbConnection
Также потребуются объект DataAdapter, чтобы осуществлять выборку из базы данных:
Dim DBCommand As OleDbDataAdapter
и объект DataSet, который будет хранить выбранные данные:
Dim DSPageData as New DataSet
Затем объявляются две переменные цикла:
Dim I as Integer
Dim J as
Integer
и переменная, которая хранит ID текущего вопроса:
Далее задается код 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)
Все это помещается в таблицу SurveyInfo объекта DataSet:
DBCommand.Fill (DSPageData, _
"Surveylnfo")
Затем название анкеты записывается в элемент управления Label:
IblTitle.Text -"<center>" _
& DSPageData.Tables("Surveylnfo"). _
Rows(0).Item("SurveyName") & "</center>"
В другой элемент управления Label записывается текст инструкций;
IblMessage.Text = DSPageData.Tables("Surveylnfo"). _
Rows (0) . Item .("Surveylnstructions")
Далее из базы выбираются все вопросы для данной анкеты:
DBCommand - New. OleDbDataAdapter _
("Select SurveyQuestionID, SurveyQuestionLong " _ & "From SurveyQuestions Where SurveylD = " _ & Application("SurveyID"), DBConn)
и помещаются в объект DataSet:
DBCommand.Fill(DSPageData, _
"SurveyQuestions")
После этого начинается внешний цикл, позволяющий обработать каждый из вопросов анкеты:
For I - 0 to DSPageData.Tables("SurveyQuestions"). _
Rows.Count - 1
В начале тела цикла объявляется новый объект LiteralControl, который позволяет динамически помещать HTML-код непосредственно в страницу:
Dim IcHTML - New LiteralControl
Текст, который располагается в этом объекте, — это текст текущего вопроса:
IcHTML.Text - DSPageData.Tables("SurveyQuestions"). _
Rows(I).Item("SurveyQuestionLong") &
"<br>"
Затем объект LiteralControl добавляется в элемент управления Panel:
pnlQuestions.Controls.Add(IcHTML)
Теперь, когда имеется текст вопроса, нужен элемент DropDownList для выбора
варианта ответа на данный вопрос:
Dim MyDDL = New DropDownList
После этого ID текущего вопроса присваивается временной переменной:
TempID - DSPageData.Tables("SurveyQuestions"). _
Rows(I).Item("SurveyQuestionID")
|