Freigeben über


OleDbDataAdapter-Klasse

Stellt einen Satz von Datenbefehlen und eine Datenbankverbindung dar, die zum Füllen des DataSet und zum Aktualisieren der Datenquelle verwendet werden.

Namespace: System.Data.OleDb
Assembly: System.Data (in system.data.dll)

Syntax

'Declaration
Public NotInheritable Class OleDbDataAdapter
    Inherits DbDataAdapter
    Implements IDbDataAdapter, IDataAdapter, ICloneable
'Usage
Dim instance As OleDbDataAdapter
public sealed class OleDbDataAdapter : DbDataAdapter, IDbDataAdapter, IDataAdapter, ICloneable
public ref class OleDbDataAdapter sealed : public DbDataAdapter, IDbDataAdapter, IDataAdapter, ICloneable
public final class OleDbDataAdapter extends DbDataAdapter implements IDbDataAdapter, IDataAdapter, 
    ICloneable
public final class OleDbDataAdapter extends DbDataAdapter implements IDbDataAdapter, IDataAdapter, 
    ICloneable

Hinweise

Der OleDbDataAdapter bildet eine Verbindung zwischen einem DataSet und einer Datenquelle, über die Daten abgerufen und gespeichert werden. Der OleDbDataAdapter stellt diese Verbindung bereit, indem er mit Fill Daten aus der Datenquelle in das DataSet lädt und im DataSet vorgenommene Änderungen mit Update zurück an die Datenquelle sendet.

Wenn der OleDbDataAdapter ein DataSet füllt, erstellt er die für die zurückgegebenen Daten erforderlichen Tabellen und Spalten, sofern diese nicht bereits vorhanden sind. Primärschlüsselinformationen sind jedoch im implizit erstellten Schema nur enthalten, wenn die MissingSchemaAction-Eigenschaft auf AddWithKey festgelegt ist. Das Schema von DataSet kann, einschließlich Primärschlüsselinformationen, auch durch den OleDbDataAdapter erstellt werden, bevor es unter Verwendung von FillSchema mit Daten gefüllt wird. Weitere Informationen finden Sie unter Hinzufügen vorhandener Einschränkungen zu einem DataSet.

Beachten Sie, dass einige OLE DB-Provider, z. B. der MSDataShape-Provider, keine Informationen zu Basistabellen oder Primärschlüsseln zurückgeben. Daher kann der OleDbDataAdapter die PrimaryKey-Eigenschaft nicht ordnungsgemäß auf eine erstellte DataTable festlegen. In solchen Fällen sollten Sie Primärschlüssel für Tabellen im DataSet explizit angeben.

Der OleDbDataAdapter enthält außerdem die Eigenschaften SelectCommand, InsertCommand, DeleteCommand, UpdateCommand und TableMappings für das Laden und Aktualisieren von Daten.

Wenn Sie eine Instanz von OleDbDataAdapter erstellen, werden die Eigenschaften auf die Anfangswerte festgelegt. Eine Liste dieser Werte finden Sie unter dem OleDbDataAdapter-Konstruktor.

Beispiel

Im folgenden Beispiel werden der OleDbCommand, der OleDbDataAdapter und die OleDbConnection verwendet, um Datensätze aus einer Access-Datenquelle auszuwählen und ein DataSet mit den ausgewählten Zeilen zu füllen. Anschließend wird das gefüllte DataSet zurückgegeben. Dafür werden der Methode ein initialisiertes DataSet, eine Verbindungszeichenfolge und eine Abfragezeichenfolge übergeben, die eine SQL-SELECT-Anweisung darstellt.

Public Function CreateDataAdapter(ByVal selectCommand As String, _
    ByVal connection As OleDbConnection) As OleDbDataAdapter

    Dim adapter As OleDbDataAdapter = _
        New OleDbDataAdapter(selectCommand, connection)

    adapter.MissingSchemaAction = MissingSchemaAction.AddWithKey

    ' Create the commands.
    adapter.InsertCommand = New OleDbCommand( _
        "INSERT INTO Customers (CustomerID, CompanyName) " & _
         "VALUES (?, ?)")

    adapter.UpdateCommand = New OleDbCommand( _
        "UPDATE Customers SET CustomerID = ?, CompanyName = ? " & _
        "WHERE CustomerID = ?")

    adapter.DeleteCommand = New OleDbCommand( _
        "DELETE FROM Customers WHERE CustomerID = ?")

    ' Create the parameters.
    adapter.InsertCommand.Parameters.Add( _
        "@CustomerID", OleDbType.Char, 5, "CustomerID")
    adapter.InsertCommand.Parameters.Add( _
        "@CompanyName", OleDbType.VarChar, 40, "CompanyName")

    adapter.UpdateCommand.Parameters.Add( _
        "@CustomerID", OleDbType.Char, 5, "CustomerID")
    adapter.UpdateCommand.Parameters.Add( _
        "@CompanyName", OleDbType.VarChar, 40, "CompanyName")
    adapter.UpdateCommand.Parameters.Add( _
        "@oldCustomerID", OleDbType.Char, 5, "CustomerID").SourceVersion = _
        DataRowVersion.Original

    adapter.DeleteCommand.Parameters.Add( _
        "@CustomerID", OleDbType.Char, 5, "CustomerID").SourceVersion = _
        DataRowVersion.Original

    Return adapter
End Function
public static OleDbDataAdapter CreateDataAdapter(string selectCommand,
    OleDbConnection connection)
{
    OleDbDataAdapter adapter = new OleDbDataAdapter(selectCommand, connection);

    adapter.MissingSchemaAction = MissingSchemaAction.AddWithKey;

    // Create the Insert, Update and Delete commands.
    adapter.InsertCommand = new OleDbCommand(
        "INSERT INTO Customers (CustomerID, CompanyName) " +
        "VALUES (?, ?)");

    adapter.UpdateCommand = new OleDbCommand(
        "UPDATE Customers SET CustomerID = ?, CompanyName = ? " +
        "WHERE CustomerID = ?");

    adapter.DeleteCommand = new OleDbCommand(
        "DELETE FROM Customers WHERE CustomerID = ?");

    // Create the parameters.
    adapter.InsertCommand.Parameters.Add("@CustomerID", 
        OleDbType.Char, 5, "CustomerID");
    adapter.InsertCommand.Parameters.Add("@CompanyName", 
        OleDbType.VarChar, 40, "CompanyName");

    adapter.UpdateCommand.Parameters.Add("@CustomerID", 
        OleDbType.Char, 5, "CustomerID");
    adapter.UpdateCommand.Parameters.Add("@CompanyName", 
        OleDbType.VarChar, 40, "CompanyName");
    adapter.UpdateCommand.Parameters.Add("@oldCustomerID", 
        OleDbType.Char, 5, "CustomerID").SourceVersion = 
        DataRowVersion.Original;

    adapter.DeleteCommand.Parameters.Add("@CustomerID", 
        OleDbType.Char, 5, "CustomerID").SourceVersion = 
        DataRowVersion.Original;

    return adapter;
}
using System;
using System.Data;
using System.Data.OleDb;

class Class1
{
    static void Main()
    {
    }

    public static OleDbDataAdapter CreateDataAdapter(string selectCommand,
        OleDbConnection connection)
    {
        OleDbDataAdapter adapter = new OleDbDataAdapter(selectCommand, connection);

        adapter.MissingSchemaAction = MissingSchemaAction.AddWithKey;

        // Create the Insert, Update and Delete commands.
        adapter.InsertCommand = new OleDbCommand(
            "INSERT INTO Customers (CustomerID, CompanyName) " +
            "VALUES (?, ?)");

        adapter.UpdateCommand = new OleDbCommand(
            "UPDATE Customers SET CustomerID = ?, CompanyName = ? " +
            "WHERE CustomerID = ?");

        adapter.DeleteCommand = new OleDbCommand(
            "DELETE FROM Customers WHERE CustomerID = ?");

        // Create the parameters.
        adapter.InsertCommand.Parameters.Add("@CustomerID", 
            OleDbType.Char, 5, "CustomerID");
        adapter.InsertCommand.Parameters.Add("@CompanyName", 
            OleDbType.VarChar, 40, "CompanyName");

        adapter.UpdateCommand.Parameters.Add("@CustomerID", 
            OleDbType.Char, 5, "CustomerID");
        adapter.UpdateCommand.Parameters.Add("@CompanyName", 
            OleDbType.VarChar, 40, "CompanyName");
        adapter.UpdateCommand.Parameters.Add("@oldCustomerID", 
            OleDbType.Char, 5, "CustomerID").SourceVersion = 
            DataRowVersion.Original;

        adapter.DeleteCommand.Parameters.Add("@CustomerID", 
            OleDbType.Char, 5, "CustomerID").SourceVersion = 
            DataRowVersion.Original;

        return adapter;
    }

Vererbungshierarchie

System.Object
   System.MarshalByRefObject
     System.ComponentModel.Component
       System.Data.Common.DataAdapter
         System.Data.Common.DbDataAdapter
          System.Data.OleDb.OleDbDataAdapter

Threadsicherheit

Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Plattformen

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

Siehe auch

Referenz

OleDbDataAdapter-Member
System.Data.OleDb-Namespace

Weitere Ressourcen

Arbeiten mit DataAdapters