Erstellen und Konfigurieren eines TableAdaptersCreate and configure TableAdapters

TableAdapters ermöglichen die Kommunikation zwischen der Anwendung und einer Datenbank.TableAdapters provide communication between your application and a database. Sie stellen eine Verbindung mit der Datenbank her, führen Abfragen oder gespeicherte Prozeduren aus und geben entweder eine neue Datentabelle zurück oder füllen eine vorhandene DataTable mit den zurückgegebenen Daten.They connect to the database, run queries or stored procedures, and either return a new data table or fill an existing DataTable with the returned data. TableAdapters können auch aktualisierte Daten von der Anwendung an die Datenbank zurücksenden.TableAdapters can also send updated data from your application back to the database.

TableAdapters werden für Sie erstellt, wenn Sie eine der folgenden Aktionen ausführen:TableAdapters are created for you when you perform one of the following actions:

  • Ziehen Sie Datenbankobjekte aus Server-Explorer in den DataSet-Designer.Drag database objects from Server Explorer into the Dataset Designer.

  • Führen Sie den Assistenten zum Konfigurieren von Datenquellen aus, und wählen Sie den Daten Quellentyp Datenbank oder Webdienst aus.Run the Data Source Configuration Wizard, and select either the Database or Web Service data source type.

    Assistent zum Konfigurieren von Datenquellen in Visual Studio

Sie können auch einen neuen TableAdapter erstellen und ihn mit einer Datenquelle konfigurieren, indem Sie einen TableAdapter aus der Toolbox in einen leeren Bereich auf der DataSet-Designer Oberfläche ziehen.You can also create a new TableAdapter and configure it with a data source by dragging a TableAdapter from the Toolbox to an empty region in the Dataset Designer surface.

Eine Einführung in TableAdapters finden Sie unter Füllen von Datasets mit TableAdapters.For an introduction to TableAdapters, see Fill datasets by using TableAdapters.

Note

Auf Ihrem Computer werden möglicherweise andere Namen oder Speicherorte für die Benutzeroberflächenelemente von Visual Studio angezeigt als die in diesem Artikel.Your computer might show different names or locations for some of the Visual Studio user interface elements in this article. Möglicherweise verwenden Sie eine andere Edition von Visual Studio oder andere Umgebungseinstellungen.You may be using a different edition of Visual Studio or different environment settings. Weitere Informationen finden Sie unter Personalisieren der IDE.For more information, see Personalize the IDE.

Verwenden des TableAdapter-Konfigurations-AssistentenUse the TableAdapter Configuration Wizard

Führen Sie den TableAdapter-Konfigurations-Assistenten aus, um TableAdapters und die zugehörigen DataTables zu erstellen oder zu bearbeiten.Run the TableAdapter Configuration Wizard to create or edit TableAdapters and their associated DataTables. Sie können einen vorhandenen TableAdapter konfigurieren, indem Sie im DataSet-Designermit der rechten Maustaste darauf klicken.You can configure an existing TableAdapter by right-clicking on it in the Dataset Designer.

Assistent zum Konfigurieren von raddata-Tabellen Adaptern

Wenn Sie einen neuen TableAdapter aus der Toolbox ziehen, wenn die DataSet-Designer im Fokus ist, wird der Assistent gestartet, und Sie werden aufgefordert, anzugeben, mit welcher Datenquelle der TableAdapter eine Verbindung herstellen soll.If you drag a new TableAdapter from the Toolbox when the Dataset Designer is in focus, the wizard starts and prompts you to specify which data source the TableAdapter should connect to. Auf der nächsten Seite fragt der Assistent, welche Art von Befehlen für die Kommunikation mit der Datenbank verwendet werden soll, entweder SQL-Anweisungen oder gespeicherte Prozeduren.On the next page, the wizard asks what kind of commands it should use to communicate with the database, either SQL statements or stored procedures. (Dies wird nicht angezeigt, wenn Sie einen TableAdapter konfigurieren, der bereits einer Datenquelle zugeordnet ist.)(You won't see this if you are configuring a TableAdapter that is already associated with a data source.)

  • Sie haben die Möglichkeit, eine neue gespeicherte Prozedur in der zugrunde liegenden Datenbank zu erstellen, wenn Sie über die richtigen Berechtigungen für die Datenbank verfügen.You have the option to create a new stored procedure in the underlying database if you have the correct permissions for the database. Wenn Sie nicht über diese Berechtigungen verfügen, ist dies keine Option.If you don't have these permissions, this won't be an option.

  • Sie können auch vorhandene gespeicherte Prozeduren für die Befehle Select, Insert, Updateund Delete des TableAdapter ausführen.You can also choose to run existing stored procedures for the SELECT, INSERT, UPDATE, and DELETE commands of the TableAdapter. Die gespeicherte Prozedur, die dem Update -Befehl zugewiesen ist, wird z. b. ausgeführt, wenn die TableAdapter.Update()-Methode aufgerufen wird.The stored procedure that's assigned to the Update command, for example, is run when the TableAdapter.Update() method is called.

Ordnen Sie die Parameter der ausgewählten gespeicherten Prozedur den entsprechenden Spalten in der Datentabelle zu.Map parameters from the selected stored procedure to the corresponding columns in the data table. Wenn Ihre gespeicherte Prozedur z. b. einen Parameter mit dem Namen @CompanyName akzeptiert, der an die Spalte CompanyName in der Tabelle übergeben wird, legen Sie die Quell Spalte des Parameters @CompanyName auf CompanyName fest.For example, if your stored procedure accepts a parameter named @CompanyName that it passes to the CompanyName column in the table, set the Source Column of the @CompanyName parameter to CompanyName.

Note

Die gespeicherte Prozedur, die dem SELECT-Befehl zugewiesen ist, wird ausgeführt, indem Sie die-Methode des TableAdapter aufrufen, den Sie im nächsten Schritt des Assistenten benennen.The stored procedure that's assigned to the SELECT command is run by calling the method of the TableAdapter that you name in the next step of the wizard. Die Standardmethode ist Fill, sodass der Code, der normalerweise zum Ausführen der SELECT-Prozedur verwendet wird, TableAdapter.Fill(tableName) ist.The default method is Fill, so the code that's typically used to run the SELECT procedure is TableAdapter.Fill(tableName). Wenn Sie den Standardnamen von Fill ändern, ersetzen Sie Fill durch den Namen, den Sie zuweisen, und ersetzen Sie "TableAdapter" durch den tatsächlichen Namen des TableAdapters (z. b. CustomersTableAdapter).If you change the default name from Fill, substitute Fill with the name you assign, and replace "TableAdapter" with the actual name of the TableAdapter (for example, CustomersTableAdapter).

  • Wenn Sie die Option Methoden erstellen, um Updates direkt an die Datenbank zu senden auswählen, entspricht dies dem Festlegen der GenerateDBDirectMethods-Eigenschaft auf true.Selecting the Create methods to send updates directly to the database option is equivalent to setting the GenerateDBDirectMethods property to true. Die Option ist nicht verfügbar, wenn die ursprüngliche SQL-Anweisung nicht genügend Informationen bereitstellt oder die Abfrage keine aktualisierbare Abfrage darstellt.The option is unavailable when the original SQL statement does not provide enough information or the query is not an updateable query. Diese Situation kann z. b. bei Verknüpfungs Abfragen und Abfragen eintreten, die einen einzelnen (skalaren) Wert zurückgeben.This situation can occur, for example, in JOIN queries and queries that return a single (scalar) value.

Mit den erweiterten Optionen im Assistenten können Sie folgende Aktionen ausführen:The Advanced Options in the wizard enable you to:

  • Generieren von INSERT-, Update-und DELETE-Anweisungen auf der Grundlage der SELECT-Anweisung, die auf der Seite SQL-Anweisungen generieren definiert istGenerate INSERT, UPDATE, and DELETE statements based on the SELECT statement that's defined on the Generate SQL statements page
  • Optimistische Nebenläufigkeit verwendenUse optimistic concurrency
  • Angeben, ob die Datentabelle nach dem Ausführen von INSERT-und Update-Anweisungen aktualisiert werden sollSpecify whether to refresh the data table after INSERT and UPDATE statements are run

Konfigurieren der Fill-Methode eines TableAdaptersConfigure a TableAdapter's Fill method

Manchmal möchten Sie möglicherweise das Schema der Tabelle "TableAdapter" ändern.Sometimes you might want to change the schema of the TableAdapter's table. Zu diesem Zweck ändern Sie die primäre Fill Methode des TableAdapter.To do this, you modify the TableAdapter's primary Fill method. TableAdapters werden mit einer primären Fill Methode erstellt, die das Schema der zugeordneten Datentabelle definiert.TableAdapters are created with a primary Fill method that defines the schema of the associated data table. Die primäre Fill Methode basiert auf der Abfrage oder gespeicherten Prozedur, die Sie bei der ursprünglichen Konfiguration des TableAdapters eingegeben haben.The primary Fill method is based on the query or stored procedure you entered when you originally configured the TableAdapter. Dabei handelt es sich um die erste (oberste) Methode unter der Datentabelle im DataSet-Designer.It's the first (topmost) method under the data table in the DataSet Designer.

TableAdapter mit mehreren Abfragen

Alle Änderungen, die Sie an der Haupt Fill Methode des TableAdapter vornehmen, werden im Schema der zugeordneten Datentabelle widergespiegelt.Any changes that you make to the TableAdapter's main Fill method are reflected in the schema of the associated data table. Wenn Sie z. b. eine Spalte aus der Abfrage in der Main-Fill-Methode entfernen, wird auch die-Spalte aus der zugeordneten Datentabelle entfernt.For example, removing a column from the query in the main Fill method also removes the column from the associated data table. Außerdem wird durch das Entfernen der Spalte aus der Main-Fill-Methode die Spalte aus allen weiteren Abfragen für den TableAdapter entfernt.Additionally, removing the column from the main Fill method removes the column from any additional queries for that TableAdapter.

Mit dem Konfigurations-Assistenten für TableAdapter-Abfragen können Sie weitere Abfragen für den TableAdapter erstellen und bearbeiten.You can use the TableAdapter Query Configuration Wizard to create and edit additional queries for the TableAdapter. Diese zusätzlichen Abfragen müssen dem Tabellen Schema entsprechen, es sei denn, Sie geben einen Skalarwert zurück.These additional queries must conform to the table schema, unless they return a scalar value. Jede zusätzliche Abfrage hat einen Namen, den Sie angeben.Each additional query has a name that you specify.

Im folgenden Beispiel wird gezeigt, wie Sie eine zusätzliche Abfrage namens FillByCity aufzurufen:The following example shows you how to call an additional query named FillByCity:

CustomersTableAdapter.FillByCity(NorthwindDataSet.Customers, "Seattle")

So starten Sie den Konfigurations-Assistenten für TableAdapter-Abfragen mit einer neuen AbfrageTo start the TableAdapter Query Configuration Wizard with a new query

  1. Öffnen Sie das Dataset im DataSet-Designer.Open your dataset in the Dataset Designer.

  2. Wenn Sie eine neue Abfrage erstellen, ziehen Sie ein Abfrage Objekt von der Registerkarte DataSet der Toolbox auf eine DataTable, oder wählen Sie im Kontextmenü von TableAdapter die Option Abfrage hinzufügen aus.If you are creating a new query, drag a Query object from the DataSet tab of the Toolbox onto a DataTable, or select Add Query from the TableAdapter's shortcut menu. Sie können ein Abfrage Objekt auch in einen leeren Bereich der DataSet-Designerziehen, wodurch ein TableAdapter ohne zugeordnete DataTable erstellt wird.You can also drag a Query object onto an empty area of the Dataset Designer, which creates a TableAdapter without an associated DataTable. Diese Abfragen können nur einzelne (skalare) Werte zurückgeben oder Update-, INSERT-oder DELETE-Befehle für die Datenbank ausführen.These queries can only return single (scalar) values, or run UPDATE, INSERT, or DELETE commands against the database.

  3. Wählen oder erstellen Sie auf dem Bildschirm Wählen Sie Ihre Datenverbindung aus die Verbindung, die von der Abfrage verwendet wird.On the Choose Your Data Connection screen, select or create the connection that the query will use.

    Note

    Dieser Bildschirm wird nur angezeigt, wenn der Designer nicht ermitteln kann, welche Verbindung verwendet werden soll oder wenn keine Verbindungen verfügbar sind.This screen only appears when the designer can't determine the proper connection to use, or when no connections are available.

  4. Wählen Sie auf der Seite Wählen Sie einen Befehlstyp aus die folgenden Methoden zum Abrufen von Daten aus der Datenbank aus:On the Choose a Command Type screen, select from the following methods of fetching data from the database:

    • Mithilfe von SQL-Anweisungen können Sie eine SQL-Anweisung eingeben, um die Daten aus der Datenbank auszuwählen.Use SQL statements enables you to type a SQL statement to select the data from your database.

    • Erstellen einer neuen gespeicherten Prozedur ermöglicht es Ihnen, dass der Assistent eine neue gespeicherte Prozedur (in der Datenbank) basierend auf der angegebenen SELECT-Anweisung erstellt.Create new stored procedure enables you to have the wizard create a new stored procedure (in the database) based on the specified SELECT statement.

    • Vorhandene gespeicherte Prozeduren verwenden ermöglicht das Ausführen einer vorhandenen gespeicherten Prozedur, wenn die Abfrage ausgeführt wird.Use existing stored procedures enables you to run an existing stored procedure when running the query.

So starten Sie den Konfigurations-Assistenten für TableAdapter-Abfragen für eine vorhandene AbfrageTo start the TableAdapter Query Configuration wizard on an existing query

  • Wenn Sie eine vorhandene TableAdapter-Abfrage bearbeiten, klicken Sie mit der rechten Maustaste auf die Abfrage, und klicken Sie dann im Kontextmenü auf Konfigurieren .If you are editing an existing TableAdapter query, right-click the query, and then choose Configure from the shortcut menu.

    Note

    Wenn Sie mit der rechten Maustaste auf die Haupt Abfrage eines TableAdapters klicken, werden die TableAdapter-und DataTable Schema neu konfiguriert.Right-clicking the main query of a TableAdapter reconfigures the TableAdapter and DataTable schema. Wenn Sie mit der rechten Maustaste auf eine zusätzliche Abfrage in einem TableAdapter klicken, wird jedoch nur die ausgewählte Abfrage konfiguriert.Right-clicking an additional query on a TableAdapter, however, configures the selected query only. Der TableAdapter-Konfigurations-Assistent konfiguriert die TableAdapter-Definition neu, während der Konfigurations-Assistent für TableAdapter-Abfragen nur die ausgewählte Abfrage neu konfiguriert.The TableAdapter Configuration Wizard reconfigures the TableAdapter definition, while the TableAdapter Query Configuration Wizard reconfigures the selected query only.

So fügen Sie einem TableAdapter eine globale Abfrage hinzuTo add a global query to a TableAdapter

  • Globale Abfragen sind SQL-Abfragen, die entweder einen einzelnen (skalaren) Wert oder keinen Wert zurückgeben.Global queries are SQL queries that return either a single (scalar) value or no value. Normalerweise führen globale Funktionen Daten Bank Vorgänge aus, z. b. Einfügungen, Updates und Löschungen.Typically, global functions perform database operations such as inserts, updates, and deletes. Außerdem aggregieren Sie Informationen, wie z. b. die Anzahl von Kunden in einer Tabelle oder die Gesamtgebühren für alle Elemente in einer bestimmten Reihenfolge.They also aggregate information, such as a count of customers in a table or the total charges for all items in a particular order.

    Sie fügen globale Abfragen hinzu, indem Sie ein Abfrage Objekt von der Registerkarte DataSet der Toolbox auf einen leeren Bereich der DataSet-Designerziehen.You add global queries by dragging a Query object from the DataSet tab of the Toolbox onto an empty area of the Dataset Designer.

  • Stellen Sie eine Abfrage bereit, die den gewünschten Task ausführt, z. b. SELECT COUNT(*) AS CustomerCount FROM Customers.Provide a query that performs the desired task, for example, SELECT COUNT(*) AS CustomerCount FROM Customers.

    Note

    Wenn Sie ein Abfrage Objekt direkt auf den DataSet-Designer ziehen, wird eine Methode erstellt, die nur einen Skalarwert (Single) zurückgibt.Dragging a Query object directly onto the Dataset Designer creates a method that returns only a scalar (single) value. Die von Ihnen ausgewählte Abfrage oder gespeicherte Prozedur gibt möglicherweise mehr als einen einzelnen Wert zurück, die vom Assistenten erstellte Methode gibt jedoch nur einen einzelnen Wert zurück.While the query or stored procedure you select might return more than a single value, the method that's created by the wizard only returns a single value. Beispielsweise kann die Abfrage die erste Spalte der ersten Zeile der zurückgegebenen Daten zurückgeben.For example, the query might return the first column of the first row of the returned data.

Siehe auchSee also