Элементы-источники данных (Data Source Controls)
Эти элементы облегчают работу с ADO .NET, инкапсулируя работу с соединениями, командами и адаптерами. Они реализуют интерфейс IDataSource, в котором определен базовый набор возможностей работы с источниками данных. Большинство этих классов предоставляют функциональность для чтения и записи. Они являются обертками объектов ADO .NET. В предыдущих версиях надо было создавать объекты ADO самим и связывать элементы-управления с ними посредством команды DataBind. Например:
<asp:BulletedList ID="BulletedList1" runat="server" BulletStyle="Square" DataTextField="CategoryName" DataValueField="CategoryID"> </asp:BulletedList>
protected void Page_Load(object sender, EventArgs e) { SqlConnection conn = new SqlConnection(@"Data Source=(local)\sqlexpress;Initial Catalog=Northwind;Integrated Security=True"); SqlCommand cmd = new SqlCommand("SELECT CategoryID, CategoryName FROM Categories", conn); SqlDataAdapter da = new SqlDataAdapter(cmd); DataSet ds = new DataSet(); da.Fill(ds); BulletedList1.DataSource = ds; BulletedList1.DataBind(); }
Теперь элементы управления связываются c элементом-источником посредством свойства DataSourceID. Любой класс-источник данных может быть связан почти с любым классом для отображения данных, и это предоставляет большую гибкость.
Всего в ASP .NET 5 элементов-источников данных: SqlDataSource, AccessDataSource и ObjectDataSource для работы с табличными источниками данных и XmlDataSource и SiteMapDataSource — для работы с иерархическими данными.
SqlDataSource позволяет соединяться с большинством реляционных СУБД. Sql в названии класса означает, что служит для соединения с базами, которые понимают язык запросов Sql, а не только с MS SQL Server.
AccessDataSource оптимизирован для работы с базами Access. Например:
<asp:AccessDataSource ID="AccessDataSource1" runat="server" DataFile="~/App_Data/guestbook.mdb" SelectCommand="SELECT [WriteDate], [UserName], [UserMail], [Message] FROM [guestbook]"> </asp:AccessDataSource>
SiteMapDataSource — это специализация XmlDataSource, работает с файлами навигации по сайту и служит источником данных для элементов управления навигации.
ObjectDataSource нужен для соединения с написанными программистом бизнес-объектами.
Элементы-источники данных предназначены для двустороннего обмена данными, то есть как для чтения, так и для записи. Сами по себе они ничего не отображают. Данные будут доступны подключенным к ним элементам управления.