Доступ к базе данных из 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>