• Microsoft .NET
  • ASP.NET
  • Поиск неисправностей веб-сайта путем изучения HTTP-трафика

Доступ и обновление данных в ASP.NET 2.0

В прошлом разработчики должны были писать код для доступа и отображения данных. То есть нам приходилось писать код запроса к базе данных и затем писать код для отображения данных. ASP.NET версии 1.x упростил данный процесс при помощи элементов управления данными (DataGrid, DataList, Repeater, DropDownList и т.д.). Имея всего пару строк кода, данные элементы управления могли создавать свои собственные HTML-элементы, как только был указан источник данных. Сегодня, используя ASP.NET верисю 2.0 и элементы управления источником данных (DataSource), разработчики могут как получать доступ к данным, так и отображать их без необходимости написания кода. Сейчас все гораздо проще!

Короче говоря,  элементы управления источниками данных в ASP.NET 2.0 предоставляют возможность декларативно работать с данными. Вместо того чтобы написать код для соединения с базой данных, выполнить команду и получить результаты в качестве DataReader или DataSet, используя элементы управления источниками данных, вы можете указать данные инструкции при помощи стандартного синтаксиса элементов управления. (Конечно, за "занавесом" элементы управления источниками данных выполняют те же шаги, которые нам нужно было выполнять в ASP.NET 1.x.) Как только вы настроите элемент управления источником данных, он может быть связан с любым элементом управления. При посещении страницы элемент управления данными автоматически связывается с элементом управления источником данных, получает необходимую информацию и отображает ее в требуемом формате.

Хотя элементы управления источниками данных легки в усвоении и в использовании, существуют некоторые сложности. В данной статье мы рассмотрим пять встроенных элементов управления источниками данных. В первой части мы исследуем общий принцип данных пяти элементов управления и как элемент управления данными работает с привязанным элементом управления источником данных во время выполнения. Читайте далее, чтобы узнать больше об этом!

Старый метод все еще работает!

Вы все еще можете получить доступ и изменять информацию в ASP.NET 2.0- приложении, используя технику, применяемую в ASP.NET версии 1.x. То есть вы все еще можете программно получить доступ к информации посредством использования классов SqlConnection, SqlCommand и SqlDataReader и связать результаты с элементами управления данными через их свойства DataSource. Элементы управления источниками данных всего лишь предоставляют декларативный, более эффективный метод работы с данными.

Преимущества элементов управления источниками данных

Одним из основных преимуществ ASP.NET версии 1.x по сравнению с его предшественником, классическим ASP, является то, что элементы управления источниками данных обладают возможностью обрабатывать HTML разметку с любого источника, при этом нет никакой небходимости в написании кода. Данное улучшение подразумевает два преимущества: вам не придется писать код разметки, а также вам не надо быть экспертом в области. При передачи информации на веб-страницу посредством классического ASP, разработчикам приходилось писать немало кода для прохода по возвращенным результатам и отображать не только содержимое текущей записи, но и HTML-код который соправождал запись.

К примеру, для отображения результатов запроса к базе данных в HTML-элементе <table>, разработчикам, использующим классический ASP, пришлось бы сначала получить данные, затем создать открывающий тег <table>, следом пришлось бы перечислить все записи в RecordSet. Для каждой записи базы данных создавалась бы табличная строка (<tr>), а для каждого поля в данной записи - табличная колонка (<td>). И наконец после обработки всей информации - добавить закрывающий тэг таблицы. Частенько это бывало не так легко выполнить, особенно когда приходилось применять различные настройки стиля к каждой строке, либо форматировать клетки в зависимости от какого-либо условия. Теперь разработчикам не надо выполнять данные действия благодаря модели элемента управления данными в ASP.NET 1.x.

В дополнение к уменьшению объема необходимого кода, элементы управления данными также не требуют особых навыков в области, как это требовалось в классическом ASP. К примеру, с классическим ASP разработчик веб-страниц должен был знать конкретный синтаксис и семантику элемента <table> в HTML. Разработчик ASP.NET использующий DataGrid, на самом деле не должен ничего знать о синтаксисе HTML, для того чтобы отобразить таблицу (хотя знание этого никогда не помешает). Также с элементом управления DropDownList разработчик просто можно связать результаты с элементом управления и не заботиться о необходимости элементов <select> и <option>.

Элементы управления данными ASP.NET 1.x предоставляют определенное постоянство в отображении данных, при том что различные элементы управления по- разному обрабатывают их. Несмотря на то, что DataGrid выводил данные в табличной сетке, а элемент DropDownList - в выпадющем списке, код для связывания обоих элементов с данными одинаков. Просто настройте свойство DataSource элемента на возвращенные данные и вызовите его DataBind() метод. Преимущества отображения данных на веб-странице посредством элементов управления данными заключается в осуществлении доступа к ним. В ASP.NET 1.x работа с данными требует написания некоторого кода, а также знаний в данной области.

Элементы управления источниками данных в ASP.NET 2.0 были созданы для улучшения как отображения данных, так и способа получения доступа к ним. Элементы управления источниками данных предоставляют разработчикам возможность получения доступа и изменения данных без необходимости в написании кода, тем самым значительно уменьшая объем и повторения кода, присутствующего в ASP.NET 1.x. Более того, ASP.NET 2.0 предоставляет пять различных элементов управления источниками данных, каждый из которых разработан для осуществления доступа к различным типам данных. К примеру, элемент SqlDataSource используется для доступа к информации, хранящеейся в реляционной базе данных, в то время как XmlDataSource может работать с данными из XML-файла. Вне зависимости от используемого элемента управления источником данных, они встраиваются в элементы управления данными единым способом. Тем самым вам не нужно иметь опыт в работе с различными типами данных. Вам уже не нужно знать специфику соединения  в базе данных Microsoft SQL Server 2000, либо помнить конкретный код доступа и фильтрации данных XML-файла. И все благодаря элементу управления источником данных.

Основа элементов управления источником данных

Хотя различные элементы управления источником данных предлагают уникальную функциональность, они все же разделяют некоторые общие свойства. В принципе, элемент управления данными является набором DataSourceViews, где DataSourceView представляет какую-то информацию. Все элементы управления данными реализуют интерфейс IDataSource, который можно найти в пространстве имен System.Web.UI. Данный интерфейс определяет парочку методов и событие, где наиболее подходящим является метод GetView(viewName) - данный метод возвращает DataSourceView, названный viewName.

Исходя из общей базы, различные элементы управления исчточниками отличаются друг от друга. К примеру, SqlDataSource составлен из нескольких SqlDataSourceView, которые являются объектами DataSourceView, специализирующимися на отображении информации из реляционной базы данных. Несмотря на различия между элементами управления источниками, элементы управления данными на ASP.NET-страницах одинаково используют все пять элементов.

Связываем элемент управления источником данных с элементом управления данными

Поскольку элементы управления источниками являются декларативными элементами, как и другие элементы управления ASP.NET (Labels, TextBoxes, Buttons и т.д), они могут быть добавлены к ASP.NET-странице перетаскиванием из Toolbox. После этого вы можете настроить их свойства для получения доступа и осуществления изменений информации. Способ выполнения зависит от используемого элемента управления источником данных (который в свою очередь зависит от типа данных, к которым вы хотите получить доступ). Как только вы настроите элемент управления источниками, он может быть связан с элементом управления данными простой установкой свойства DataSourceID в ID элемента управления источниками. (Те элементы, которые образуются от класса BaseDataBoundControl обладают свойством DataSourceID. В их числе: AdRotator, BulletedList, CheckBoxList, DropDownList, ListBox, RadioButtonList, DetailsView, FormView, GridView, Menu, и TreeView.)

Как только вы назначите свойству DataSourceID элемент управления источниками, ваша работа в качестве разработчика веб-страниц заканчивается. Элемент управления данными осуществит запрос о необходимой информации к связанному элементу управления источником. К примеру, при отображении информации в GridView (заменой DataGrid в ASP.NET 2.0) при этом используя SqlDataSource, элемент GridView вызовет метод SqlDataSource GetView(), который в свою очередь осуществит доступ к информации базы данных согласно указаниям в различных свойствах SqlDataSource. Полученная информация обрабатывается и выводится в качестве таблицы HTML <table>.

И это все! Элементы управления источниками позволяют разработчикам осуществлять доступ без необходимости в написании кода точно так же, как и элементы управления данными позволяют отображать информацию. Точно так же, как и элементы управления данными программно обрабатывают информацию и строят соотвествующие HTML-элементы за "занавесом", элементы управления источниками осуществляют доступ к данным программным путем.

Вывод

В данной статье мы рассмотрели основы элемента управления источником данных (Data Source Control) в ASP.NET 2.0. Используя элементы управления источниками данных, разработчики могут создавать ASP.NET-страницы, работающие с информацией без необходимости в написании кода, и вместо этого указывая доступ к данным посредством декларативных элементов управления источниками. Как только вы добавите элемент управления источниками данных на страницу и правильно настроите его, он может быть связан с элементом управления данными путем установки его свойства DataSourceID в значении ID свойства соответствующего элемента управления источниками данных. Как только вы осуществили данную связь, элемент управления данными автоматически получит информацию из элемента управления источником.

В будущих статьях данной серии мы подробно рассмотрим пять встроенных элементов управления источниками данных, а также узнаем, как программно работать с ними.

Scott Mitchell