Доступ к базе данных из ASP.NET - Связывание (Binding) SQL данных с Repeater Control
ОГЛАВЛЕНИЕ
Связывание (Binding) SQL данных с Repeater Control
Repeater control полезен только для показа данных, не взаимодействуя с ними. Его преимущество состоит в том, что могут быть установлены шаблоны, позволяющие отображать данные различными способами.
Следующий пример демонстрирует связывание Repeater control с DataView (возвращённого из SQL запроса) который содержит информацию о размещении книг. В примере также присутствуют HeaderTemplate и FooterTemplate, которые включаются вначале и конце листинга, соответственно.
Repeater control выполняет только итерации по связанным данным, предоставляя itemtemplate один раз для каждого элемента в коллекции DataSource. Он не предоставляет ничего, кроме элементов, содержащихся в его шаблонах.
Доступ к SQL базе данных
1. Импортируйте необходимые для вашей страницы пространства имён. Это позволит обеспечить ваш код доступом к необходимым классам.
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SQL" %>
<html>
2. В пределах тэга <script language="C#" runat="server">, используйте функцию Page_Load, которая обеспечит подключение к базе данных, создаст и заполнит новый Dataset информацией из базы и затем свяжет Repeater control с Dataset. Это показывается в следующем примере кода:
<script language="C#" runat="server">
void Page_Load(Object semder, EventArgs e) {
{
а) Обеспечьте подключение к базе данных "pubs", расположенной на локальном компьютере.
SQLConnection myConnection = new SQLConnection(
"server=localhost;uid=sa;pwd=;database=pubs");
б) Соединитесь с SQL базой данных, используя запрос "select *", чтобы получить все данные из таблицы "Titles".
SQLDataSetCommand myCommand = new SQLDataSetCommand(
"select * from Titles", myConnection);
в) Создайте и заполните Dataset.
DataSet ds = new DataSet();
myCommand.FillDataSet(ds, "Titles");
г) Свяжите MyDataList с таблицей "Titles", используя заданное по умолчанию представление. Заметьте, что MyDataList - это "id" установленный для Repeater control в <body> страницы.
MyDataList.DataSource = ds.Tables["Titles"].DefaultView;
MyDataList.DataBind();
}
</script>
3. В тэге страницы <body>, отобразите данные.
<body topmargin="0" leftmargin="0" marginwidth="0" marginheight="0">
4. Откройте Repeater control
<ASP:Repeater id="MyDataList" runat="server">
5. Установите шаблоны для Repeater control.
а) Установите шаблон для открытия таблицы и отображения заголовков столбцов.
<template name="headertemplate">
<table width="100%" style="font: 8pt verdana">
<tr style="background-color:DFA894">
<th>
Заголовок
</th>
<th>
ID заголовока
</th>
<th>
Тип
</th>
<th>
ID издателя
</th>
<th>
Цена
</th>
</tr>
</template>
б) Установите шаблон отображающий реальные данные.
<template name="itemtemplate">
<tr style="background-color:FFECD8">
<td>
<%# DataBinder.Eval(Container.DataItem, "title") %>
</td>
<td>
<%# DataBinder.Eval(Container.DataItem, "title_id") %>
</td>
<td>
<%# DataBinder.Eval(Container.DataItem, "type") %>
</td>
<td>
<%# DataBinder.Eval(Container.DataItem, "pub_id") %>
</td>
<td>
<%# DataBinder.Eval(Container.DataItem, "price", "$ {0}") %>
</td>
</tr>
</template>
в) Установите шаблон для закрытия таблицы.
<template name="footertemplate">
</table>
</template>
6. Закройте Repeater control
</ASP:Repeater>
7. Закройте страницу.
</body>
</html>