Доступ к информации базы данных в ASP.NET 2.0

ОГЛАВЛЕНИЕ

Самые интересное нововведение в ASP.NET 2.0 - это новые элементы управления источником данных (Data Source). Данные элементы являются набором элементов управления, разработанных для предоставления декларативного подхода к осуществлению доступа и изменению информации. Если вкратце, то по сравнению с ASP.NET 1.x, который требовал написания  некоторого кода для осуществления доступа к данным, теперь, при помощи элементов управления источниками, вы можете работать с данными, не написав при этом и строки кода для доступа.

К примеру, для того, чтобы отобразить содержимое таблицы базы данных на веб-странице с ASP.NET 1.x, вам нужно было бы написать код для того, чтобы:

  1. осуществить соединение к базе данных,
  2. выполнить команду,
  3. получить результат,
  4. работать с результатами; связать их с элементом управления данными (таким как DataGrid)
Факт остается фактом - вам необходимо написать некоторый код в приложении ASP.NET 1.x для осуществления доступа и изменения информации. Если использовать ASP.NET 2.0, то информация может быть доступна полностью из декларативной разметки. В данной статье мы рассмотрим доступ к информации базы данных, осуществленный посредством элементов управления SqlDataSource и AccessDataSource. Вы можете указать запросу SELECT, что можно использовать любые параметры в выражении WHERE в качестве свойств элементов управления источником данных Data Source. Данные элементы выполняют первые три шага из тех, что мы указали выше. При их помощи вы можете создавать страницы, которые будут отображать информацию из базы данных меньше чем за 15 секунд и без написания какого-либо кода. Читайте далее, чтобы узнать больше об этом!

Осуществляем доступ к информации базы данных

ASP.NET 2.0 предоставляет два элемента управления источниками данных разработанных специально для осуществления доступа к информации из базы данных:

  • SqlDataSource - пригоден для доступа к информации любой реляционной базы данных. "Sql" в названии не имеет отношения к Microsoft SQL Server, скорее к синтаксису SQL относительно запросов к реляционным базам данных, так как элемент SqlDataSource может быть использован для осуществления доступа не только к базам данных Microsoft SQL Server, но и к базам Microsoft Access, Oracle ... в общем к любому информационному массиву, соответствующему OLE-DB либо ODBC.
  • AccessDataSource - схож SqlDataSource. Ключевой разницей является то, что вместо того чтобы требовать строку соединения к базе данных, элемент AccessDataSource позволяет вам просто указать путь к Access файлу .MDB посредством свойства DataFile.

Оба элемента управления имеют практически одинаковый набор свойств, и единственной разницей будет то, как вы укажете информацию о соединении. В принципе, элемент AccessDataSource по большому счету является излишком, так как доступ к базам данных Microsoft Access может быть сделан посредством SqlDataSource. (Вам, конечно же, придется предоставить строку соединения вместо простого указания пути к файлу, но Visual Studio 2005 может автоматически создавать соответствующие строки соединения для баз данных, расположенных в вашем App_Data каталоге.)

В данной статье мы подробно рассмотрим SqlDataSource и немного поговорим об этой разнице с AccessDataSource. Более того, элементы SqlDataSource и AccessDataSource могут быть использованы для осуществления доступа и выполнения изменений информации; тем не менее статья освещает только доступ к данным. Мы рассмотрим способ использования элементов управления источниками данных для выполнения изменений информации в следующей статье.

Для начала, запустите Visual Studio 2005 и создайте новый веб-сайт или скачайте пример кода из приложения к данной статье. Я буду рассматривать осуществление доступа, получение результата и отображение информации из базы данных Microsoft Access Northwind, которая также приведена в приложении  к данной статье. (Заметьте, я использую более укороченную версию базы Northwind, где я для уменьшения объема файла удалил Forms, Modules, Reports и Macros.)

ASP.NET 2.0 предоставляет каталог App_Data - его вы можете добавить в ваш веб-сайт для того, чтобы хранить в нем такие файлы, как XML-файлы, файлы базы данных Access (.mdb), файлы базы данных SQL Server 2000 и SQL Server 2005 Express (.mdf). В приложении вы найдете файл Northwind.mdb в каталоге App_Data. Конечно, ASP.NET может работать с базами данных которые не находятся в каталоге App_Data. При использовании профессиональных систем баз данных, таких как Microsoft SQL Server, они обычно зарегистрированы на удаленном сервере баз данных.

Неважно, где находится ваша база данных - как только у вас будет база данных, с которой вам нужно работать, для осуществления доступа к ее содержимому вы захотите добавить SqlDataSource (либо AccessDataSource) на страницу. Начните с создания новой ASP.NET-страницы и перейдите в режим просмотра Design. Далее, перетащите элемент SqlDataSource из Toolbox в Designer. Элементы управления источниками отображены в качестве маленького прямоугольника в Designer; они не порождают HTML-разметку при посещении страницы обозревателем. Для того чтобы правильно осуществить доступ к данным, мы должны настроить некоторые свойства SqlDataSource, которые указывают используемую базу данных и запрос, который нужно выполнить. Хотя это можно осуществить посредством панели Properties, это выполняется быстрее, при помощи мастера (wizard), которую можно вызвать нажатием на ссылку "Configure Data Source" (Настроить источник данных) в смарт-теге элемента SqlDataSource.