Извлечение данных с помощью серверного веб-элемента управления AccessDataSource

Visual Studio 2010

Обновлен: Ноябрь 2007

Элемент управления AccessDataSource позволяет извлекать данные из базы данных Microsoft Access (MDB-файл). Затем можно отобразить данные в элементах управления с привязкой к данным, таких как GridView, FormView, и DetailsView.

Элемент управления AccessDataSource наследует класс SqlDataSource и заменяет свойство ConnectionString свойством DataFile, чтобы сделать подключение к базе данных Microsoft Access более удобным. Элемент управления AccessDataSource использует поставщик System.Data.OleDb для подключения к базе данных Access с помощью поставщика OLE DB Microsoft.Jet.OLEDB.4.0.

Элемент управления AccessDataSource подключается к файлу базы данных Microsoft Access (MDB-файл), определенному в свойстве DataFile. Можно присвоить свойству DataFile UNC-путь, указывающий на файл базы данных Access. Следующий пример демонстрирует, как использовать относительный путь от корня для идентификации базы данных Access, расположенной в папке App_Data текущего веб-приложения.

  <asp:AccessDataSource
    id="AccessDataSource1"
    DataFile="~/App_Data/Northwind.mdb"
    runat="server"
    SelectCommand="SELECT EmployeeID, LastName, FirstName FROM Employees">
  </asp:AccessDataSource>

Если файл базы данных Access хранится вместе с веб-приложением, то рекомендуется хранить его в папке App_Data, чтобы ограничить доступ к нему. ASP.NET не возвращает файлы из папки App_Data при непосредственном запросе. Чтобы хранить файлы базы данных Access в папке App_Data, удостоверению процесса ASP.NET должны быть предоставлены права доступа на запись и чтение. Дополнительные сведения об удостоверении процесса ASP.NET см. в разделе Настройка удостоверения процесса ASP.NET.

Элемент управления AccessDataSource присваивает свойству ProviderName базового класса SqlDataSource поставщик System.Data.OleDb и выполняет подключение с помощью поставщика OLE DB Microsoft.Jet.OLEDB.4.0. Нельзя присвоить значение свойству ProviderName или ConnectionString элемента управления AccessDataSource.

8e5545e1.alert_note(ru-ru,VS.100).gifПримечание.

Элемент управления AccessDataSource не выполнит подключение к базе данных Access, которая защищена паролем; для извлечения данных из защищенной паролем базы данных Access воспользуйтесь элементом управления SqlDataSource.

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

<form id="form1" runat="server">
  <asp:AccessDataSource
    id="EmployeesAccessDataSource"
    DataFile="~/App_Data/Northwind.mdb"
    runat="server"
    SelectCommand="SELECT EmployeeID, FirstName, LastName FROM Employees" />

  <asp:GridView
    id="EmployeesGridView"
    runat="server"
    AutoGenerateColumns="True"
    DataSourceid="EmployeesAccessDataSource" />


Вернуть результаты запроса к Microsoft Access можно, присвоив свойству SelectCommandType элемента управления SelectCommand значение StoredProcedure, как показано в следующем примере кода.

<asp:AccessDataSource
  id="InvoiceAccessDataSource"
  DataFile="~/App_Data/Northwind.mdb"
  runat="server"
  SelectCommand="[Employee Sales By Country]"
  SelectCommandType="StoredProcedure">
  <SelectParameters>
    <asp:Parameter Name="Beginning Date" Type="DateTime" defaultValue="1/1/1997" />
    <asp:Parameter Name="Ending Date" Type="DateTime" defaultValue="1/31/1997" />
  </SelectParameters>
</asp:AccessDataSource>

<asp:GridView
  id="InvoiceGridView"
  runat="server"
  AutoGenerateColumns="True"
  DataSourceid="InvoiceAccessDataSource" />


Сведения об изменении данных с помощью элемента управления AccessDataSource см. в разделе Изменение данных с помощью элемента управления SqlDataSource; этот раздел касается работы с элементом управления AccessDataSource, поскольку он наследует функции элемента управления SqlDataSource и неявно использует поставщик System.Data.OleDb.

Можно использовать параметризованные запросы для команд и предоставлять параметры во время выполнения. Кроме этого, при вызове запроса Microsoft Access можно указать параметры во время выполнения. (для вызова запроса Microsoft Access задается свойства типа команды для команды StoredProcedure). Дополнительные сведения см. в разделе Использование параметров с элементами управления источников данных.

Поскольку элемент управления AccessDataSource расширяет класс SqlDataSource и использует поставщик System.Data.OleDb, параметры-местозаполнители задаются с помощью символа-местозаполнителя («?»). Поставщик System.Data.OleDb не поддерживает именованные параметры; вместо этого значения параметров применяются в том порядке, в котором они указаны в коллекции параметров. Необходимо убедиться, что порядок параметров в коллекции соответствует порядку параметров-местозаполнителей в инструкции SQL или запросе Microsoft Access. Дополнительные сведения и примеры см. в разделе Использование параметров с элементом управления SqlDataSource.

Показ: