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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Web-службы

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


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

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


Проект Кабина для голосования
Проект День рождения
Проект Рассылка почты


Обратите внимание на то, что столбцы не генерируются автоматически. Мы определяем их самостоятельно:

    AutoGenerateColumns="false"

Элемент DataGrid содержит два столбца. В первом столбце используется элемент управления HyperLink:

    <asp:HyperLinkColumn

Поэтому необходимо указать поле данных, с которым должна устанавливаться связь при выполнении щелчка:

    DataNavigateUrlField="EmailAddress"

В рассматриваемом примере целевое поле содержит адрес для отправки поздравления. В следующей строке задано выполнение этой операции. Следует отметить, что текст {0} будет заменен электронным адресом сотрудника:

    DataNavigateUrlFormatString=mailto.: {0}

Пользователь увидит имя сотрудника в первом столбце:

    DataTextField="FullName"

Во втором столбце находится элемент управления BoundColumn:

    <asp:BoundColumn

Назначение этого элемента — отображение электронного адреса сотрудника:

    DataField="EmailAddress"

Единственный блок кода на странице активизируется при ее загрузке.

    Sub Page_Load(ByVal Sender as Object, ByVal E as EventArgs)
    Dim DBConn as OleDbConnection
    Dim DBCommand As OleDbDataAdapter
    Dim DSPageData as New DataSet
    DBConn = New OleDbConnection("Provider=sqloledb;" _
    & "server=localhost;" _
    & "Initial Catalog=INETC4;"
    & "User Id=sa;"
    & "Password=yourpassword;")
    DBCommand = New OleDbDataAdapter _
    ("Select EmployeeFirstName + ' ' + EmployeeLastName " _
    & "as FullName, EmailAddress From EmployeeBirthdays " _
    & "Where DatePart(mm, BirthDate) = " _
    & "DatePart (mm, GetDateO) and " _
    & "DatePart(dd, BirthDate) = " _
    & "DatePart (dd, GetDate()) " _
    & "Order By EmployeeLastName" _
    , DBConn)
    DBCommand.Fill(DSPageData, _
    "Birthdays")
    dgBirthdays.DataSource - _
    DSPageData.Tables("Birthdays").Defaultview
    dgBirthdays.DataBind{)
    End Sub

Из базы данных выбираются имена, фамилии и электронные адреса сотрудников, день рождения которых приходится на текущую дату. Функция DatePart используется в предложении Where запроса для извлечения месяца и дня рождения сотрудника. Получить текущую дату системы позволяет функция GetDate:

    DBCommand = New OleDbDataAdapter __
    ("Select EmployeeFirstName + T ' + EmployeeLastName " _
    & "as FullName, EmailAddress From EmployeeBirthdays " _
    & "Where DatePart(mm, BirthDate) = " _
    & "DatePart(mm, GetDate()) and " _
    & "DatePart(dd, BirthDate) = " _
    & "DatePart(dd, GetDate()) " _
    & "Order By EmployeeLastName" _
    , DBConn)

Все выбранные записи помещаются в объект DataSet:

    DBCommand.Fill(DSPageData, _
    "Birthdays"d ,

С этим объектом связывается элемент управления DataGrid:

    dgBirthdays.DataSource .- _
    DSPageData.Tables("Birthdays").Defaultview
    dgBirthdays.DataBind()

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

Для обеспечения взаимодействия приложения День Рождения с базой данных Access необходимо внести в код два изменения. Во-первых, в строке соединения с базой данных:

    DBConn = New OleDbConnectionC'Provider-sqloledb;" _
    & "server-localhost;" _
    & "Initial Catalog=INETC4;" _
    & "User Id-sa;"
    & "Password=yourpassword;"),

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

    DBConn - New 01eDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;" _
    & "DATA SOURCE="
    & Server.MapPath("/INetBook/C4/Birthday/" _
    & "Access/C4birthday.mdb;"))

Во-вторых, потребуется изменить текст SQL-запроса, выполняющего поиск записей о сотрудниках. При работе с SQL-сервером знак «+» применяется для конкатенации, функция DatePart — для извлечения компонентов даты, а функция GetDate — для получения текущей даты:

    DBCommand = New OleDbDataAdapter _
    ("Select EmployeeFirstName + ' ' + EmployeeLastName " _
    & "as FullName, EmailAddress From EmployeeBirthdays " _
    & "Where DatePart(mm, BirthDate) = " _
    & "DatePart (mm, GetDateO) and " _
    & "DatePart(dd, BirthDate) = "
    & "DatePart (dd, GetDateO) " _
    & "Order By EmployeeLastName" _
    , DBConn)

В Access получить текущую дату позволяет функция Date, а для извлечения значений месяца и дня из даты применяются функции Month и Day. В качестве символа конкатенации употребляется знак «&»:

    DBCommand = New OleDbDataAdapter _
    ("Select EmployeeFirstName & ' ' & EmployeeLastName " _
    & "as FullName, EmailAddress From EmployeeBirthdays " _
    & "Where Month(BirthDate) - " _
    & "Month(Date()) and " _
    & "Day(BirthDate) = "
    & "DayPart (Dated ) "
    & "Order By EmployeeLastName" _
    , DBConn)

Hosted by uCoz