Compartilhar via


Recuperando dados usando o controle de servidor Web AccessDataSource

O controle AccessDataSource permite que você recupere dados de um banco de dados do Microsoft Access (arquivo .mdb).Em seguida, você pode exibir os dados em controles ligados a dados, como os controles GridView, FormView e DetailsView.

O controle AccessDataSource herda da classe SqlDataSource e substitui a propriedade ConnectionString por uma propriedade DataFile para que seja mais conveniente conectar-se a um banco de dados do Microsoft Access.O controle AccessDataSource usa o provedor System.Data.OleDb para se conectar a bancos de dados do Access usando o provedor OLE DB Microsoft.Jet.OLEDB.4.0.

Conectando-se a um banco de dados usando o controle AccessDataSource

O controle AccessDataSource se conecta ao arquivo de banco de dados Microsoft Access (arquivo .mdb) identificado na propriedade DataFile.Você pode definir a propriedade DataFile para um caminho de convenção de nomenclatura universal (UNC) que aponta para um arquivo de banco de dados do Access.O exemplo a seguir demonstra como você pode usar uma caminho relativo à raiz para identificar um banco de dados do Access que esteja localizado na pasta App_Data do aplicativo Web atual.

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

Se você estiver armazenando um arquivo de banco de dados Access com o aplicativo da Web, é recomendável que você o armazene na pasta App_Data para manter o banco de dados privado.O ASP.NET não permite que arquivos na pasta App_Data sejam retornados quando solicitados diretamente.A identidade do processo ASP.NET deve ter concessão de permissões para ler e gravar para o arquivo de bancos de dados Access armazenado na pasta App_Data.Para obter informações sobre a identidade do processo ASP.NET, consulte Configurando Identidade de Processo do ASP.NET.

O controle AccessDataSource define a propriedade ProviderName da classe base SqlDataSource ao provedor System.Data.OleDb e conecta-se usando o provedor OLE DB Microsoft.Jet.OLEDB.4.0.Você não pode definir as propriedades ProviderName ou ConnectionString do controle AccessDataSource.

Observação:

AccessDataSource não conectará a um banco de dados do Access que seja protegido por senha; para recuperar dados de um banco de dados do Access protegido por senha, use o controle SqlDataSource.

Selecionando dados usando o controle AccessDataSource

Você pode especificar uma consulta SQL para o controle AccessDataSource para executar definindo sua propriedade SelectCommand conforme o seguinte exemplo de código.

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

  <asp:GridView
    id="EmployeesGridView"
    
    AutoGenerateColumns="True"
    DataSourceid="EmployeesAccessDataSource" />
<form id="form1" >
  <asp:AccessDataSource
    id="EmployeesAccessDataSource"
    DataFile="~/App_Data/Northwind.mdb"
    
    SelectCommand="SELECT EmployeeID, FirstName, LastName FROM Employees" />

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

Você pode retornar os resultados de uma consulta do Microsoft Access, definindo a propriedade SelectCommandType do seu SelectCommand para StoredProcedure conforme o seguinte exemplo de código.

<asp:AccessDataSource
  id="InvoiceAccessDataSource"
  DataFile="~/App_Data/Northwind.mdb"
  
  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"
  
  AutoGenerateColumns="True"
  DataSourceid="InvoiceAccessDataSource" />
<asp:AccessDataSource
  id="InvoiceAccessDataSource"
  DataFile="~/App_Data/Northwind.mdb"
  
  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"
  
  AutoGenerateColumns="True"
  DataSourceid="InvoiceAccessDataSource" />

Para obter informações sobre como modificar dados utilizando o controle AccessDataSource, consulteModificando dados usando o controle SqlDataSource; esse tópico consiste em trabalhar com o controle AccessDataSource porque o controle herda a capacidade do controle SqlDataSource e implicitamente faz uso do provedor System.Data.OleDb.

Usando parâmetros com o controle AccessDataSource

Você pode usar consultas parametrizadas para comandos e fornecer parâmetros em tempo de execução.Além disso, você pode especificar parâmetros em tempo de execução quando chamar uma consulta Access.(Para chamar uma consulta do Microsoft Access, você define a propriedade de tipo de comando para o comando StoredProcedure).Para obter mais informações, consulte Usando parâmetros com controles de fonte de dados.

Como o controle AccessDataSource estende a classe SqlDataSource e usa o provedor System.Data.OleDb, você especifica espaços reservados de parâmetro usando o caractere de espaço reservado "?".O provedor System.Data.OleDb não oferece suporte a parâmetros nomeados; em vez disso, os valores dos parâmetros são aplicados na ordem que forem especificados na coleção de parâmetros.Você deve certificar-se de que a ordem dos parâmetros na coleção corresponde à ordem dos espaços reservados para parâmetro em sua instrução SQL ou consulta Microsoft Access.Para mais informações e exemplos, consulte Usando parâmetros com o controle SqlDataSource.

Consulte também

Conceitos

Selecionando Dados Usando o Controle SqlDataSource