Доступ к БД из ASP.NET
Страница 2. Связывание (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>

 
Следующая статья »