Freigeben über


Abrufen von Daten mit dem AccessDataSource-Webserversteuerelement

Aktualisiert: November 2007

Mit dem AccessDataSource-Steuerelement können Sie Daten aus einer Microsoft Access-Datenbank (MDB-Datei) abrufen. Sie können die Daten dann in datengebundenen Steuerelementen anzeigen, z. B. im GridView-Steuerelement, im FormView-Steuerelement und im DetailsView-Steuerelement.

Das AccessDataSource-Steuerelement erbt von der SqlDataSource-Klasse und ersetzt die ConnectionString-Eigenschaft mit einer DataFile-Eigenschaft, um das Verbinden mit einer Microsoft Access-Datenbank bequemer zu gestalten. Das AccessDataSource-Steuerelement verwendet den System.Data.OleDb-Anbieter, um mit dem Microsoft.Jet.OLEDB.4.0-OLE DB-Anbieter eine Verbindung zu Access-Datenbanken herzustellen.

Herstellen einer Verbindung zu einer Datenbank mithilfe des AccessDataSource-Steuerelements

Das AccessDataSource-Steuerelement stellt eine Verbindung zur Microsoft Access-Datenbankdatei (MDB-Datei) her, die in der DataFile-Eigenschaft angegeben ist. Sie können die DataFile-Eigenschaft auf einen UNC-Pfad (Universal Naming Convention) festlegen, der auf eine Access-Datenbankdatei zeigt. Das folgende Beispiel veranschaulicht die Verwendung des stammbezogenen Pfads zur Identifizierung einer Access-Datenbank, die sich im Ordner App_Data der aktuellen Webanwendung befindet.

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

Falls Sie eine Access-Datenbankdatei mit der Webanwendung speichern, sollten Sie sie im Ordner App_Data der Anwendung speichern, damit die Datenbank privat bleibt. In ASP.NET können Dateien im Ordner App_Data nicht zurückgegeben werden, wenn sie direkt angefordert werden. Die ASP.NET-Prozessidentität muss die Berechtigung zum Lesen und Schreiben der im Ordner App_Data gespeicherten Access-Datenbank besitzen. Weitere Informationen über die ASP.NET-Prozessidentität finden Sie unter Konfigurieren der Prozessidentität in ASP.NET.

Das AccessDataSource-Steuerelement legt die ProviderName-Eigenschaft der SqlDataSource-Basisklasse auf den System.Data.OleDb-Anbieter fest und stellt mithilfe des Microsoft.Jet.OLEDB.4.0-OLE DB-Anbieters eine Verbindung her. Sie können die ProviderName-Eigenschaft und die ConnectionString-Eigenschaft des AccessDataSource-Steuerelements nicht festlegen.

Hinweis:

Das AccessDataSource-Steuerelement stellt keine Verbindung zu einer kennwortgeschützten Accessdatenbank her. Verwenden Sie zum Abrufen von Daten aus einer kennwortgeschützten Access-Datenbank das SqlDataSource-Steuerelement.

Auswählen von Daten mithilfe des AccessDataSource-Steuerelements

Sie können eine SQL-Abfrage, die das AccessDataSource-Steuerelement ausführen soll, mithilfe der SelectCommand-Eigenschaft des Steuerelements festlegen, wie im folgenden Codebeispiel gezeigt.

<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" />

Sie können Ergebnisse einer Microsoft Access-Abfrage zurückgeben, indem Sie die SelectCommandType-Eigenschaft des SelectCommand auf StoredProcedure festlegen, wie im folgenden Codebeispiel gezeigt.

<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" />

Weitere Informationen über das Bearbeiten von Daten mit dem AccessDataSource-Steuerelement finden Sie unter Bearbeiten von Daten mithilfe des SqlDataSource-Steuerelements. Dieses Thema bezieht sich auch auf das Arbeiten mit dem AccessDataSource-Steuerelement, weil das Steuerelement die Fähigkeiten des SqlDataSource-Steuerelements erbt und implizit den System.Data.OleDb-Anbieter verwendet.

Verwenden von Parametern mit dem AccessDataSource-Steuerelement

Sie können parametrisierte Abfragen für Befehle verwenden und zur Laufzeit Parameter angeben. Zusätzlich können Sie zur Laufzeit Parameter angeben, wenn Sie eine Microsoft Access-Abfrage aufrufen. (Um eine Microsoft Access-Abfrage aufzurufen, legen Sie die Befehlstypeigenschaft für den Befehl auf StoredProcedure fest.) Weitere Informationen finden Sie unter Verwenden von Parametern für Datenquellen-Steuerelemente.

Weil das AccessDataSource-Steuerelement die SqlDataSource-Klasse verfügbar macht und den System.Data.OleDb-Anbieter verwendet, geben Sie den Parameterplatzhalter mit dem Platzhalterzeichen "?" an. Der System.Data.OleDb-Anbieter stellt keine Unterstützung für benannte Parameter bereit. Stattdessen werden die Parameterwerte in der Reihenfolge angewendet, die in der Parameterauflistung vorhanden ist. Sie müssen sicherstellen, dass die Reihenfolge der Parameter in der Parameterauflistung der Reihenfolge der Parameterplatzhalter in der SQL-Anweisung bzw. der Microsoft Access-Abfrage entspricht. Weitere Informationen und Beispiele finden Sie unter Verwenden von Parametern mit dem SqlDataSource-Steuerelement.

Siehe auch

Konzepte

Auswählen von Daten mithilfe des SqlDataSource-Steuerelements