
Проект Чат
Проект Запрос SQL
Проект Совет дня
Проект Полезные ссылки
Проект Запрос SQL
Приложение Запрос SQL позволяет посетителям вводить произвольные SQL-запросы. Результаты выполнения этих запросов отображаются в элементе управления DataGr id. Вы можете использовать это приложение с любой базой данных. Мы обратимся к базе данных узла Расписание сеансов из главы 14.
Описание проекта
Приложение Запрос SQL состоит из двух панелей, выводимых на одной странице. На рис. показана первая панель.

Панель для запроса
Панель для ввода запроса содержит элемент TextBox и элемент Button. При составлении запроса посетитель должен ввести в него ключевые слова Select и From, иначе будет выведено сообщение об ошибке. Наличие указанных слов проверяется посредством элементов управления RequiredFieldValidator и Regu-larExpressionValidator. Как только слова введены, сообщение об ошибке исчезает.

Простой запрос
После этого посетитель может нажать кнопку Выполнить запрос для просмотра результатов.

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

Сложный запрос

Результаты выполнения сложного запроса
Код проекта
В проекте Запрос SQL нет собственной базы данных. Поэтому это приложение можно использовать для работы с любой базой. Приложение состоит из одной страницы ASP.NET, которую мы и рассмотрим в данном разделе.
Страница Запрос SQL
Элемент управления Label выводит на экран текст заголовка:
<asp:Label
id="lblTitle"
BorderWidth="5px"
B6rderStyle=6
Width="90%"
Font-Size="25pt"
Font-Name="Trebuchet MS"
Text="<CENTER>flo6po пожаловать на узел Запрос SQL</CENTER>"
runat="server"
/>
Элемент управления Panel используется для ввода запроса:
<asp:Panel
id="pnlQuery"
runat="server"
Font-Size="13pt"
Font-Name="Trebuchet MS"
HorizontalAlign="Left"
>
В данном элементе задействован элемент TextBox, предназначенный для ввода посетителем запроса:
<asp:TextBox
id="txtQuery"
Columns="60"
Rows="7"
runat=server
TextMode="MultiLine"
/>
С элементом TextBox связаны три элемента управления проверки. Первый элемент, RequiredFieldValidator, проверяет, введены ли данные в элемент TextBox:
<asp:RequiredFieldValidator
id="rfvQuery"
ControlToValidate»"txtQuery"
Display="Dynamic"
Font-Name="Trebuchet MS"
ForeColor="Yellow"
Font-Size="llpt"
runat=server>
Heo6xoдимо ввести запрос!
</asp:RequiredFieldValidator
>
Второй элемент подтверждает, что в запросе посетителя содержится слово Select:
<asp:RegularExpressionValidator
id="revSelect"
ControlToValidate="txtQuery"
ValidationExpression=".*(Select\bIselect\bISELECT\b)."
Display="Dynamic"
Font-Name="Trebuchet MS"
ForeColor="fellow"
Font-Size="llpt"
runat=server>
<BR>B запрос необходимо включить слово Select!
</asp:RegularExpressionValidator>
Обратите внимание на синтаксис проверочного выражения. В тексте должно содержаться слово Select, select или SELECT. Символ «|» соответствует слову «или», «\Ь» означает, что введенные символы должны составлять указанное слово, а не являться частью другого слова. Иначе говоря, посетитель должен вводить Select, но не Selection.
ValidationExpression=".*(Select\bIselectAb|SELECT\b).*"
Третий элемент проверяет, имеется ли в запросе слово From:
<asp:RegularExpressionValidator id="revFrom"
ControlToValidate="txtQuery"
ValidationExpression=".*(From\bIfrom\bIFROMXb).*"
Display="Dynamic"
Font-Name="Trebuchet MS"
ForeColor="Yellow"
Font-Size="llpt"
runat=server>
<BR>B запрос необходимо включить слово From!
</asp:RegularExpressionValidator>
Кроме того, элемент Panel содержит элемент Button:
<asp:button
id="butQuery"
text="Bыпoлнить запрос"
Type="Submit"
OnClick="SubmitQuery_Click"
runat="server"
/>
</asp:Panel>
Следующий элемент Panel отображает результаты выполнения запроса:
<asp:Panel
id="pnlResults"
runat="server"
Font-Size="12pt"
Font-Name="Trebuchet MS"
HorizontalAlign="Left">
|