Freigeben über


Exemplarische Vorgehensweise: Erstellen einer n-Ebenen-Datenanwendung mit ADO.NET und .NET Framework

Hinweis

Die DataSet Klassen und verwandten Klassen sind ältere .NET Framework-Technologien aus den frühen 2000er Jahren, mit denen Anwendungen mit Daten im Arbeitsspeicher arbeiten können, während die Apps von der Datenbank getrennt sind. Die Technologien sind besonders nützlich für Apps, mit denen Benutzer Daten ändern und die Änderungen wieder in der Datenbank speichern können. Obwohl Datasets eine bewährte erfolgreiche Technologie sind, ist der empfohlene Ansatz für neue .NET-Anwendungen die Verwendung von Entity Framework Core. Entity Framework bietet eine natürlichere Möglichkeit zum Arbeiten mit tabellarischen Daten als Objektmodelle und verfügt über eine einfachere Programmierschnittstelle.

N-Ebenen-Datenanwendungen sind Anwendungen, die auf Daten zugreifen und in mehrere logische Ebenen oder Ebenen getrennt sind. Durch das Trennen von Anwendungskomponenten in diskrete Ebenen wird die Wartung und Skalierbarkeit der Anwendung erhöht. Dies geschieht durch eine einfachere Einführung neuer Technologien, die auf eine einzelne Ebene angewendet werden können, ohne dass Sie die gesamte Lösung neu gestalten müssen. Die Architektur der N-Ebene umfasst eine Präsentationsleiste, eine mittlere Ebene und eine Datenebene. Die mittlere Ebene enthält in der Regel eine Datenzugriffsebene, eine Geschäftslogikebene und freigegebene Komponenten wie Authentifizierung und Validierung. Die Datenebene enthält eine relationale Datenbank. N-Tier-Anwendungen speichern in der Regel vertrauliche Informationen in der Datenzugriffsebene der mittleren Ebene, um die Isolation von Endbenutzern aufrechtzuerhalten, die auf die Präsentationsebene zugreifen. Weitere Informationen finden Sie in der Übersicht über N-Ebenen-Datenanwendungen.

Eine Möglichkeit zum Trennen der verschiedenen Ebenen in einer n-stufigen Anwendung besteht darin, diskrete Projekte für jede Ebene zu erstellen, die Sie in Ihre Anwendung einbeziehen möchten. Typisierte Datasets enthalten eine DataSet Project Eigenschaft, die bestimmt, in welche Projekte das generierte Dataset und TableAdapter der Code eingefügt werden sollen.

In dieser exemplarischen Vorgehensweise wird das Trennen von Datasets und TableAdapter Code in separate Klassenbibliotheksprojekte mithilfe des Dataset-Designers veranschaulicht. Nachdem Sie den Dataset- und TableAdapter-Code getrennt haben, erstellen Sie einen Windows Communication Foundation Services und WCF Data Services-Dienst in Visual Studio, um die Datenzugriffsebene aufzurufen. Schließlich erstellen Sie eine Windows Forms-Anwendung als Präsentationsebene. Diese Ebene greift auf Daten vom Datendienst zu.

Während dieser Schritt-für-Schritt-Anleitung führen Sie die folgenden Schritte aus:

  • Erstellen Sie eine neue n-Ebenen-Lösung, die mehrere Projekte enthält.

  • Fügen Sie der n-Ebenen-Lösung zwei Klassenbibliotheksprojekte hinzu.

  • Erstellen Sie ein typisiertes Dataset mithilfe des Datenquellenkonfigurations-Assistenten.

  • Trennen Sie den generierten TableAdapters- und Datasetcode in diskrete Projekte.

  • Erstellen Sie einen Windows Communication Foundation (WCF)-Dienst, um die Datenzugriffsebene anzusprechen.

  • Erstellen Sie Funktionen im Dienst, um Daten aus der Datenzugriffsebene abzurufen.

  • Erstellen Sie eine Windows Forms-Anwendung, die als Präsentationsebene fungiert.

  • Erstellen Sie Windows Forms-Steuerelemente, die an die Datenquelle gebunden sind.

  • Schreiben Sie Code zum Auffüllen der Datentabellen.

Voraussetzungen

Um dieses Lernprogramm abzuschließen, benötigen Sie die in Visual Studio installierten Workloads für .NET-Desktopentwicklung und Datenspeicherung und -verarbeitung. Um sie zu installieren, öffnen Sie Visual Studio Installer, und wählen Sie Ändern (oder Mehr>Ändern) neben der Version von Visual Studio aus, die Sie ändern möchten. Weitere Informationen finden Sie im Artikel Ändern von Visual Studio durch Hinzufügen oder Entfernen von Arbeitsauslastungen und Komponenten.

In dieser exemplarischen Vorgehensweise wird SQL Server Express LocalDB und die Northwind-Beispieldatenbank verwendet.

  1. Wenn Sie nicht über SQL Server Express LocalDB verfügen, installieren Sie sie entweder über die SQL Server Express-Downloadseite oder über das Visual Studio-Installationsprogramm. Im Visual Studio-Installer können Sie SQL Server Express LocalDB als Teil der .NET-Desktopentwicklungsworkload oder als einzelne Komponente installieren.

  2. Installieren Sie die Northwind-Beispieldatenbank, indem Sie die folgenden Schritte ausführen:

    1. Öffnen Sie in Visual Studio das fenster SQL Server-Objekt-Explorer. (SQL Server-Objekt-Explorer wird als Teil der Datenspeicherungs- und Verarbeitungsauslastung im Visual Studio Installer installiert.) Erweitern Sie den SQL Server-Knoten . Klicken Sie mit der rechten Maustaste auf Ihre LocalDB-Instanz, und wählen Sie neue Abfrageaus.

      Wenn die LocalDB-Instanz nicht angezeigt wird, verwenden Sie die Symbolleistenschaltfläche "SQL Server hinzufügen". Das Dialogfeld wird angezeigt. Erweitern Sie im Dialogfeld "Lokal" und wählen Sie "MSSQLLocalDB" aus. Geben Sie die entsprechenden Anmeldeinformationen ein. Sie können die Standardauswahl für die Datenbank belassen.

      Screenshot des Dialogfelds

    2. Wählen Sie Verbinden aus. Ein Knoten wird für LocalDB im SQL Server-Objekt-Explorer hinzugefügt.

    3. Klicken Sie mit der rechten Maustaste auf Ihre LocalDB-Instanz, und wählen Sie neue Abfrageaus.

      Ein Abfrage-Editor-Fenster wird geöffnet.

    4. Kopieren Sie das Northwind-Transact-SQL Skript in die Zwischenablage. Dieses T-SQL-Skript erstellt die Northwind-Datenbank von Grund auf neu und füllt sie mit Daten auf.

    5. Fügen Sie das T-SQL-Skript in den Abfrage-Editor ein, und wählen Sie dann die Schaltfläche Ausführen aus.

      Nach kurzer Zeit wird die Ausführung der Abfrage abgeschlossen, und die Northwind-Datenbank wird erstellt.

Erstellen der n-Ebenen-Lösung und Klassenbibliothek zum Speichern des Datasets (DataEntityTier)

Der erste Schritt dieser exemplarischen Vorgehensweise besteht darin, eine Lösung und zwei Klassenbibliotheksprojekte zu erstellen. Die erste Klassenbibliothek enthält das Dataset (die generierte typisierte DataSet Klasse und DataTables, die die Daten der Anwendung enthalten). Dieses Projekt wird als Datenentitätsebene der Anwendung verwendet und befindet sich in der Regel auf der mittleren Ebene. Der Datensatz erstellt den anfänglichen Datensatz und unterteilt den Code automatisch in die beiden Klassenbibliotheken.

Hinweis

Stellen Sie sicher, dass Projekt und Projektmappe ordnungsgemäß benannt wurden, bevor Sie auf OK klicken. Das erleichtert die Durchführung der exemplarischen Vorgehensweise.

So erstellen Sie die n-Ebenen-Lösung und die DataEntityTier-Klassenbibliothek

  1. Erstellen Sie in Visual Studio ein Projekt mit der Projektvorlage Windows Forms App (.NET Framework) für C# oder Visual Basic. .NET Core, .NET 5 und höher werden nicht unterstützt.

  2. Benennen Sie das Projekt DataEntityTier.

  3. Benennen Sie die Lösung "NTierWalkthrough", und wählen Sie dann "OK" aus.

    Eine NTierWalkthrough-Lösung, die das DataEntityTier-Projekt enthält, wird erstellt und dem Projektmappen-Explorer hinzugefügt.

Erstellen der Klassenbibliothek für die TableAdapter-Instanzen (DataAccessTier)

Der nächste Schritt nach dem Erstellen des DataEntityTier-Projekts besteht darin, ein weiteres Klassenbibliotheksprojekt zu erstellen. Dieses Projekt enthält die generierten TableAdapters und wird als Datenzugriffsebene der Anwendung bezeichnet. Die Datenzugriffsebene enthält die Informationen, die zum Herstellen einer Verbindung mit der Datenbank erforderlich sind und sich in der Regel auf der mittleren Ebene befinden.

So erstellen Sie eine separate Klassenbibliothek für die TableAdapters

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf die Projektmappe, und wählen Sie anschließend Hinzufügen>Neues Projekt aus.

  2. Wählen Sie die Projektvorlage "Klassenbibliothek (.NET Framework)" aus.

  3. Benennen Sie das Projekt DataAccessTier , und wählen Sie "OK" aus.

    Das DataAccessTier-Projekt wird erstellt und der NTierWalkthrough-Lösung hinzugefügt.

Erstellen des Datasets

Der nächste Schritt besteht darin, ein typisiertes Dataset zu erstellen. Typisierte Datasets werden sowohl mit der Datasetklasse (einschließlich DataTables Klassen) als auch mit den TableAdapter Klassen in einem einzelnen Projekt erstellt. (Alle Klassen werden in einer einzelnen Datei generiert.) Wenn Sie das Dataset und TableAdapters in verschiedene Projekte trennen, handelt es sich um die Datasetklasse, die in das andere Projekt verschoben wird, wobei die TableAdapter Klassen im ursprünglichen Projekt verbleiben. Erstellen Sie daher das Dataset im Projekt, das letztendlich die TableAdapters (das DataAccessTier-Projekt) enthält. Sie erstellen das Dataset mithilfe des Datenquellenkonfigurations-Assistenten.

Hinweis

Sie müssen Zugriff auf die Northwind-Beispieldatenbank haben, um die Verbindung zu erstellen. Informationen zum Einrichten der Northwind-Beispieldatenbank finden Sie unter How to: Install sample databases.

So erstellen Sie das Dataset

  1. Wählen Sie DataAccessTier im Projektmappen-Explorer aus.

  2. Wählen Sie im Menü "Daten " die Option "Datenquellen anzeigen" aus.

    Das Fenster "Datenquellen " wird geöffnet.

  3. Wählen Sie im Fenster "Datenquellen " die Option "Neue Datenquelle hinzufügen " aus, um den Assistenten für die Datenquellenkonfiguration zu starten.

  4. Wählen Sie auf der Seite " Datenquellentyp auswählen " die Option "Datenbank " und dann " Weiter" aus.

  5. Führen Sie auf der Seite " Datenverbindung auswählen " eine der folgenden Aktionen aus:

    Wenn eine Datenverbindung mit der Northwind-Beispieldatenbank in der Dropdownliste verfügbar ist, wählen Sie sie aus.

    oder

    Wählen Sie "Neue Verbindung" aus, um das Dialogfeld "Verbindung hinzufügen " zu öffnen.

  6. Wenn für die Datenbank ein Kennwort erforderlich ist, wählen Sie die Option aus, vertrauliche Daten einzuschließen, und wählen Sie dann "Weiter" aus.

    Hinweis

    Wenn Sie eine lokale Datenbankdatei (anstelle einer Verbindung mit SQL Server) ausgewählt haben, werden Sie möglicherweise gefragt, ob Sie die Datei dem Projekt hinzufügen möchten. Wählen Sie 'Ja ' aus, um die Datenbankdatei zum Projekt hinzuzufügen.

  7. Wählen Sie auf der Seite "Verbindungstring in der Anwendungskonfigurationsdatei speichern" die Option Weiter aus.

  8. Erweitern Sie den Knoten "Tabellen " auf der Seite " Datenbankobjekte auswählen ".

  9. Aktivieren Sie die Kontrollkästchen für die Tabellen " Kunden " und " Bestellungen ", und wählen Sie dann " Fertig stellen" aus.

    NorthwindDataSet wird dem DataAccessTier-Projekt hinzugefügt und wird im Fenster "Datenquellen " angezeigt.

Trennen der TableAdapters vom Dataset

Trennen Sie nach dem Erstellen des Datasets die generierte Datasetklasse von den TableAdapters. Dazu legen Sie die DataSet Project-Eigenschaft auf den Namen des Projekts fest, in dem die getrennte Datasetklasse gespeichert werden soll.

So trennen Sie die TableAdapters vom Dataset

  1. Doppelklicken Sie im Projektmappen-Explorer auf NorthwindDataSet.xsd, um das Dataset im Dataset-Designer zu öffnen.

  2. Wählen Sie einen leeren Bereich im Designer aus.

  3. Suchen Sie den DataSet-Projektknoten im Eigenschaftenfenster .

  4. Wählen Sie in der DataSet-Projektliste"DataEntityTier" aus.

  5. Wählen Sie im Menü Erstellen die Option Lösung erstellen.

    Das Dataset und die TableAdapters sind in die beiden Klassenbibliotheksprojekte unterteilt. Das Projekt, das ursprünglich das gesamte Dataset (DataAccessTier) enthielt, enthält jetzt nur die TableAdapters. Das projekt, das in der DataSet Project-Eigenschaft (DataEntityTier) festgelegt ist, enthält das typisierte Dataset: NorthwindDataSet.Dataset.Designer.vb (oder NorthwindDataSet.Dataset.Designer.cs).

Hinweis

Wenn Sie Datasets und TableAdapters (durch Festlegen der DataSet Project-Eigenschaft ) trennen, werden vorhandene Partielle Datasetklassen im Projekt nicht automatisch verschoben. Vorhandene Teilklassen des Datasets müssen manuell in das Datasetprojekt verschoben werden.

Erstellen einer neuen Dienstanwendung

In dieser exemplarischen Vorgehensweise wird veranschaulicht, wie Sie mithilfe eines WCF-Diensts auf die Datenzugriffsebene zugreifen. Erstellen wir also eine neue WCF-Dienstanwendung.

So erstellen Sie eine neue WCF-Dienstanwendung

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf die Projektmappe, und wählen Sie anschließend Hinzufügen>Neues Projekt aus.

  2. Wählen Sie im Dialogfeld "Neues Projekt " im linken Bereich WCF aus. Wählen Sie im mittleren Bereich die WCF-Dienstbibliothek aus.

  3. Benennen Sie das Projekt DataService , und wählen Sie "OK" aus.

    Das DataService-Projekt wird erstellt und der NTierWalkthrough-Lösung hinzugefügt.

Erstellen von Methoden auf der Datenzugriffsebene zum Zurückgeben der Kunden- und Auftragsdaten

Der Datendienst muss zwei Methoden in der Datenzugriffsebene aufrufen: GetCustomers und GetOrders. Diese Methoden geben die Northwind Customers und Orders Tabellen zurück. Erstellen Sie die GetCustomers Methoden und GetOrders Methoden im DataAccessTier Projekt.

So erstellen Sie eine Methode in der Datenzugriffsebene, die die Tabelle "Customers" zurückgibt

  1. Doppelklicken Sie im Projektmappen-Explorer auf "NorthwindDataset.xsd ", um das Dataset zu öffnen.

  2. Klicken Sie mit der rechten Maustaste auf CustomersTableAdapter , und klicken Sie auf "Abfrage hinzufügen".

  3. Lassen Sie auf der Seite "Befehlstyp auswählen" den Standardwert "SQL-Anweisungen verwenden" und klicken Sie auf "Weiter".

  4. Übernehmen Sie auf der Seite Abfragetyp auswählen den Standardwert SELECT-Anweisung, die Zeilen zurückgibt, und klicken Sie auf Weiter.

  5. Lassen Sie auf der Seite SQL SELECT-Anweisung angeben die Standardabfrage stehen und klicken Sie auf Weiter.

  6. Geben Sie auf der Seite Zu generierende Methode auswählen für den Methodennamen im Abschnitt DataTable zurückgeben die Zeichenfolge GetCustomers ein.

  7. Klicken Sie auf Fertig stellen.

So erstellen Sie eine Methode in der Datenzugriffsebene, die die Tabelle "Bestellungen" zurückgibt

  1. Klicken Sie mit der rechten Maustaste auf "OrdersTableAdapter ", und klicken Sie auf "Abfrage hinzufügen".

  2. Lassen Sie auf der Seite "Befehlstyp auswählen" den Standardwert "SQL-Anweisungen verwenden" und klicken Sie auf "Weiter".

  3. Übernehmen Sie auf der Seite Abfragetyp auswählen den Standardwert SELECT-Anweisung, die Zeilen zurückgibt, und klicken Sie auf Weiter.

  4. Lassen Sie auf der Seite SQL SELECT-Anweisung angeben die Standardabfrage stehen und klicken Sie auf Weiter.

  5. Geben Sie auf der Seite Zu generierende Methoden auswählen für den Methodennamen im Abschnitt DataTable zurückgeben die Zeichenfolge GetOrders ein.

  6. Klicken Sie auf Fertig stellen.

  7. Klicken Sie im Menü Erstellen auf Lösung erstellen.

Hinzufügen eines Verweises auf die Datenentität und Datenzugriffsebenen zum Datendienst

Da der Datendienst Informationen aus dem Dataset und TableAdapters benötigt, fügen Sie Verweise auf die Projekte DataEntityTier und DataAccessTier hinzu.

So fügen Sie Verweise zum Datendienst hinzu

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf DataService und klicken Sie auf Verweis hinzufügen.

  2. Klicken Sie im Dialogfeld "Verweis hinzufügen" auf die Registerkarte "Projekte".

  3. Wählen Sie sowohl die Projekte DataAccessTier als auch DataEntityTier aus.

  4. Klicke auf OK.

Hinzufügen von Funktionen zum Dienst zum Aufrufen der Methoden "GetCustomers" und "GetOrders" in der Datenzugriffsebene

Da die Datenzugriffsebene nun die Methoden zum Zurückgeben von Daten enthält, erstellen Sie Methoden im Datendienst, um die Methoden auf der Datenzugriffsebene aufzurufen.

Hinweis

Für C#-Projekte müssen Sie einen Verweis auf die System.Data.DataSetExtensions Assembly hinzufügen, damit der folgende Code kompiliert werden kann.

So erstellen Sie die Funktionen "GetCustomers" und "GetOrders" im Datendienst

  1. Doppelklicken Sie im DataService-Projekt auf IService1.vb oder IService1.cs.

  2. Fügen Sie den folgenden Code unter dem Kommentar " Dienstvorgänge hinzufügen" hinzu :

    [OperationContract]
    DataEntityTier.NorthwindDataSet.CustomersDataTable GetCustomers();
    
    [OperationContract]
    DataEntityTier.NorthwindDataSet.OrdersDataTable GetOrders();
    

    Hinweis

    Der Code für dieses Lernprogramm ist in C# und Visual Basic verfügbar. Um die Codesprache auf dieser Seite zwischen C# und Visual Basic zu wechseln, verwenden Sie den Codesprachenwechsel oben auf der Seite auf der rechten Seite.

  3. Doppelklicken Sie im DataService-Projekt auf Service1.vb (oder Service1.cs).

  4. Fügen Sie der Service1-Klasse den folgenden Code hinzu:

    public DataEntityTier.NorthwindDataSet.CustomersDataTable GetCustomers()
    {
        DataAccessTier.NorthwindDataSetTableAdapters.CustomersTableAdapter
             CustomersTableAdapter1
            = new DataAccessTier.NorthwindDataSetTableAdapters.CustomersTableAdapter();
        return CustomersTableAdapter1.GetCustomers();
    }
    public DataEntityTier.NorthwindDataSet.OrdersDataTable GetOrders()
    {
        DataAccessTier.NorthwindDataSetTableAdapters.OrdersTableAdapter
             OrdersTableAdapter1
            = new DataAccessTier.NorthwindDataSetTableAdapters.OrdersTableAdapter();
        return OrdersTableAdapter1.GetOrders();
    }
    
  5. Klicken Sie im Menü Erstellen auf Lösung erstellen.

Erstellen einer Präsentationsebene zum Anzeigen von Daten aus dem Datendienst

Da die Lösung nun den Datendienst enthält, der Methoden enthält, die die Datenzugriffsebene aufrufen, erstellen Sie ein weiteres Projekt, das den Datendienst aufruft und die Daten den Benutzern präsentiert. Erstellen Sie für diese exemplarische Vorgehensweise eine Windows Forms-Anwendung als Präsentationsebene der N-Tier-Anwendung.

So erstellen Sie das Präsentationsebenenprojekt

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf die Projektmappe, und wählen Sie anschließend Hinzufügen>Neues Projekt aus.

  2. Wählen Sie im Dialogfeld "Neues Projekt " im linken Bereich "Windows Desktop" aus. Wählen Sie im mittleren Bereich die Windows Forms-App aus.

  3. Benennen Sie das Projekt PresentationTier , und klicken Sie auf 'OK'.

    Das PresentationTier-Projekt wird erstellt und der NTierWalkthrough-Lösung hinzugefügt.

Festlegen des PresentationTier-Projekts als Startprojekt

Wir legen fest, dass das PresentationTier-Projekt das Startprojekt für die Lösung ist, da es sich um die tatsächliche Clientanwendung ist, die die Daten darstellt und mit ihnen interagiert.

So legen Sie das neue Präsentationsebenenprojekt als Startprojekt fest

  • Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf PresentationTier, und klicken Sie dann auf Als Startprojekt festlegen.

Hinzufügen von Verweisen auf die Präsentationsebene

Die Clientanwendung PresentationTier erfordert einen Dienstverweis auf den Datendienst, um auf die Methoden im Dienst zuzugreifen. Außerdem ist ein Verweis auf das DataSet erforderlich, um die Typfreigabe des WCF-Diensts zu aktivieren. Bis Sie die Typfreigabe über den Datendienst aktivieren, steht der Code, der der partiellen Datensatzklasse hinzugefügt wurde, der Präsentationsschicht nicht zur Verfügung. Da Sie in der Regel Code hinzufügen, z. B. Überprüfungscode zu den Zeilen- und Spaltenänderungsereignissen einer Datentabelle, ist es wahrscheinlich, dass Sie auf diesen Code vom Client zugreifen möchten.

Fügen Sie einen Verweis zur Präsentationsebene hinzu

  1. Klicken Sie mit der rechten Maustaste auf PresentationTier im Projektmappen-Explorer, und wählen Sie „Verweis hinzufügen“ aus.

  2. Wählen Sie im Dialogfeld " Verweis hinzufügen " die Registerkarte "Projekte " aus.

  3. Wählen Sie "DataEntityTier" und dann "OK" aus.

So fügen Sie eine Dienstreferenz zur Präsentationsebene hinzu

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf PresentationTier und wählen Sie Dienstverweis hinzufügen aus.

  2. Wählen Sie im Dialogfeld " Dienstreferenz hinzufügen " die Option "Ermitteln" aus.

  3. Wählen Sie "Dienst1" und dann "OK" aus.

    Hinweis

    Wenn Sie über mehrere Dienste auf dem aktuellen Computer verfügen, wählen Sie den Dienst aus, den Sie zuvor in dieser exemplarischen Vorgehensweise erstellt haben (der Dienst, der die GetCustomers Methoden GetOrders enthält).

Hinzufügen von DataGridViews zum Formular, um die vom Datendienst zurückgegebenen Daten anzuzeigen

Nachdem Sie den Dienstverweis zum Datendienst hinzugefügt haben, wird das Datenquellenfenster automatisch mit den Daten gefüllt, die vom Dienst zurückgegeben werden.

So fügen Sie dem Formular zwei datengebundene DataGridViews hinzu

  1. Wählen Sie im Projektmappen-Explorer das PresentationTier-Projekt aus.

  2. Erweitern Sie im Fenster DatenquellenNorthwindDataSet und finden Sie den Knoten Customers.

  3. Ziehen Sie den Kundenknoten auf Formular 1.

  4. Erweitern Sie im Fenster "Datenquellen " den Knoten " Kunden ", und suchen Sie den zugehörigen Knoten "Bestellungen " (der Knoten "Bestellungen ", der im Knoten " Kunden " geschachtelt ist).

  5. Ziehen Sie den zugehörigen Orders-Knoten auf Formular1.

  6. Erstellen Sie einen Form1_Load Ereignishandler, indem Sie auf einen leeren Bereich des Formulars doppelklicken.

  7. Fügen Sie dem Form1_Load Ereignishandler den folgenden Code hinzu.

    ServiceReference1.Service1Client DataSvc =
        new ServiceReference1.Service1Client();
    northwindDataSet.Customers.Merge(DataSvc.GetCustomers());
    northwindDataSet.Orders.Merge(DataSvc.GetOrders());
    

Erhöhen der vom Dienst zulässigen maximalen Nachrichtengröße

Der Standardwert für maxReceivedMessageSize ist nicht groß genug, um die aus den Tabellen Customers und Orders abgerufenen Daten aufzunehmen. In den folgenden Schritten erhöhen Sie den Wert auf 6553600. Sie ändern den Wert auf dem Client, der den Dienstverweis automatisch aktualisiert.

Hinweis

Die niedrigere Standardgröße soll die Gefährdung von Denial-of-Service-Angriffen (DoS) einschränken. Weitere Informationen finden Sie unter MaxReceivedMessageSize.

So erhöhen Sie den maxReceivedMessageSize-Wert

  1. Doppelklicken Sie im Projektmappen-Explorer auf die Datei app.config im PresentationTier-Projekt.

  2. Suchen Sie das maxReceivedMessageSize-Attribut , und ändern Sie den Wert in 6553600. Wenn der basicHttpBinding Eintrag nicht angezeigt wird, fügen Sie einen wie im folgenden Beispiel hinzu:

    <system.serviceModel>
     <bindings>
         <basicHttpBinding>
             <binding maxBufferSize="6553600" maxReceivedMessageSize="6553600" />
         </basicHttpBinding>
     </bindings>
    </system.serviceModel>
    

Testen der Anwendung

Führen Sie die Anwendung aus, indem Sie F5 drücken. Die Daten aus den Tabellen Customers und Orders werden vom Datendienst abgerufen und im Formular angezeigt.

Nächste Schritte

Je nach Anwendungsanforderungen gibt es mehrere Schritte, die Sie nach dem Speichern verwandter Daten in der Windows-basierten Anwendung ausführen möchten. Sie können beispielsweise die folgenden Verbesserungen an dieser Anwendung vornehmen:

  • Fügen Sie dem Dataset eine Überprüfung hinzu.

  • Fügen Sie dem Dienst weitere Methoden zum Aktualisieren von Daten zurück in die Datenbank hinzu.