Доступ к базе данных из ASP.NET - Связывание SQL данных с DataList Control
ОГЛАВЛЕНИЕ
Связывание SQL данных с DataList Control
В то время как Repeater является итератором общего назначения, DataList обеспечивает некоторые дополнительные возможности управления размещением в листинге. В отличие от Repeater, DataList позволяет включить дополнительные элементы вне определения шаблона, подобно строкам, ячейкам и промежуткам таблицы, которые содержат атрибуты стиля. Это предоставляет более широкие возможности форматирования. Например, DataList поддерживает свойства RepeatColumns и RepeatDirection, которые определяют, должны ли данные быть представлены в нескольких столбцах и в каком направлении (вертикально или горизонтально) чтобы представить элементы данных. DataList также поддерживает атрибуты стиля: тип, размер и имя шрифта.
Этот пример показывает, как обратиться к SQL базе данных, которая содержит заголовки книг и немного ключевой информации о каждой книге, и затем отображает данные, используя DataList. Результат имеет всю заданную информацию для каждой книги, сгруппированную вместе, и информация для каждой книги представлена в двух столбцах в порядке слева направо.
Доступ к 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 sender, 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" установленный для DataList в <body> страницы.
MyDataList.DataSource = ds.Tables["Titles"].DefaultView;
MyDataList.DataBind();
}
3. В тэге страницы <body>, отобразите данные.
</script>
<body topmargin="0" leftmargin="0" marginwidth="0" marginheight="0">
4. Откройте DataList, устанавливая его для двух столбцов, которые будут заполнен в горизонтальном порядке.
<ASP:DataList id="MyDataList" RepeatColumns="2" RepeatDirection=
"Horizontal" runat="server">
5. Установите шаблон DataList с именем "itemtemplate".
<template name="itemtemplate">
а) Используйте элемент <div>, что бы обрабатывать данные для каждой книги как логический модуль.
<div style="padding:15,15,15,15;font-size:10pt;
font-family:Verdana">
б) Используйте вложенный элемент <div> для связи данных заголовка и показа их различными шрифтами.
<div style="font:12pt verdana;color:darkred">
<i><b><%# DataBinder.Eval(Container.DataItem, "title")%>
</i></b>
</div>
<br>
в) Связываем и показываем остальную часть данных в шрифте, установленном элементом <div>.
<b>Title ID: </b><%# DataBinder.Eval(Container.DataItem,
"title_id") %><br>
<b>Category: </b><%# DataBinder.Eval(Container.DataItem,
"type")%><br>
<b>Publisher ID: </b><%# DataBinder.Eval
(Container.DataItem, "pub_id") %><br>
<b>Price: </b><%# DataBinder.Eval
(Container.DataItem, "price", "$ {0}") %><p>
</div>
</template>
</ASP:DataList>
</body>
</html>