Freigeben über


Daten zwischen Formularen übergeben

Hinweis

Datasets und verwandte 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 Anwendungen von der Datenbank getrennt werden. Die Technologien sind besonders nützlich für Anwendungen, mit denen Benutzer Daten ändern und die Änderungen wieder in der Datenbank speichern können. Obwohl Datasets sich als sehr erfolgreiche Technologie erwiesen haben, empfehlen wir, dass neue .NET-Anwendungen Entity Framework Core verwenden. Entity Framework bietet eine natürlichere Möglichkeit, mit tabellarischen Daten als Objektmodelle zu arbeiten und verfügt über eine einfachere Programmierschnittstelle.

Dieses Lernprogramm enthält schrittweise Anleitungen zum Übergeben von Daten von einem Formular an ein anderes. Mithilfe der Tabellen "Kunden" und "Bestellungen" aus der Northwind-Beispieldatenbank können Benutzer einen Kunden auswählen, und in einem zweiten Formular werden die Bestellungen des ausgewählten Kunden angezeigt. In diesem Lernprogramm wird gezeigt, wie Sie eine Methode für das zweite Formular erstellen, das Daten aus dem ersten Formular empfängt.

In diesem Tutorial führen Sie die folgenden Aufgaben durch:

  • Erstellen Sie ein neues Windows Forms App (.NET Framework) -Projekt.
  • Erstellen und Konfigurieren eines Datasets mithilfe des Datenquellenkonfigurations-Assistenten.
  • Wählen Sie das Steuerelement aus, das im Formular erstellt werden soll, wenn Sie Elemente aus dem Fenster "Datenquellen " ziehen. Weitere Informationen finden Sie unter Festlegen des Steuerelements, das beim Ziehen aus dem Datenquellenfenster erstellt werden soll.
  • Erstellen Sie ein datengebundenes Steuerelement, indem Sie Elemente aus dem Datenquellenfenster auf ein Formular ziehen.
  • Erstellen Sie ein zweites Formular mit einem Raster, in dem Daten angezeigt werden.
  • Erstellen Sie eine TableAdapter Abfrage zum Abrufen von Bestellungen für einen bestimmten Kunden.
  • Übergeben von Daten zwischen Formularen.

Hinweis

In diesem Lernprogramm wird nur eine Möglichkeit zum Übergeben von Daten zwischen Formularen veranschaulicht. Es gibt weitere Optionen zum Übergeben von Daten an ein Formular, z. B. das Erstellen eines zweiten Konstruktors zum Empfangen von Daten oder das Erstellen einer öffentlichen Eigenschaft, die mit Daten aus dem ersten Formular festgelegt werden kann.

Voraussetzungen

  • 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 " Weiteres>Ändern" neben der Version von Visual Studio aus, die Sie verwenden möchten. Weitere Informationen finden Sie unter Ändern von Visual Studio.

  • SQL Server Express 2019 LocalDB wird entweder über die SQL Server-Downloadseite oder über das Visual Studio-Installationsprogramm als Teil der Speicher- und Verarbeitungsauslastung installiert.

  • Die Northwind-Beispieldatenbank, die mit den folgenden Schritten erstellt wurde:

    1. Öffnen Sie in Visual Studio das SQL Server-Objekt-Explorer-Fenster , indem Sie es im Menü "Ansicht" auswählen. DER SQL Server-Objekt-Explorer wird als Teil der Datenspeicherungs- und Verarbeitungsworkloads installiert.

    2. Erweitern Sie den SQL Server-Knoten , klicken Sie mit der rechten Maustaste auf Ihre LocalDB-Instanz, und wählen Sie "Neue Abfrage " aus, um ein Abfrage-Editor-Fenster zu öffnen.

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

    4. Fügen Sie das T-SQL-Skript in den Abfrage-Editor ein, und wählen Sie dann oben im Fenster "Ausführen" aus, um die Northwind-Datenbank zu erstellen.

Erstellen des Windows Forms-App-Projekts

  1. Wählen Sie in Visual Studio im Menü "Datei" die Option "Neues Projekt"> aus.

  2. Wählen Sie entweder C# oder Visual Basic aus der Dropdownliste "Alle Sprachen ", "Windows " aus der Dropdownliste "Alle Plattformen " und " Desktop " aus der Liste "Alle Projekttypen " aus.

  3. Wählen Sie in der Projektvorlagenliste die Windows Forms-App (.NET Framework) und dann "Weiter" aus.

  4. Benennen Sie das Projekt PassingDataBetweenForms, wählen Sie "Weiter" und dann " Erstellen" aus.

Das PassingDataBetweenForms-Projekt wird erstellt und dem Projektmappen-Explorer hinzugefügt. Die Designeransicht von Form1 wird im Editor angezeigt.

Die Datenquelle erstellen

  1. Öffnen Sie das Fenster Datenquellen, indem Sie im Visual Studio-Menü Projekt>Neue Datenquelle hinzufügen auswählen.

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

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

  4. Überprüfen Sie auf der Seite "Datenbankmodell auswählen ", ob das Dataset angegeben ist, und wählen Sie "Weiter" aus.

  5. Auf der Seite Datenverbindung auswählen, wenn bereits eine Datenverbindung zur Northwind-Beispieldatenbank verfügbar ist, wählen Sie diese aus und fahren Sie mit dem Schritt Datenbankobjekte auswählen fort. Wählen Sie andernfalls "Neue Verbindung" aus.

  6. Wählen Sie auf dem Bildschirm " Datenquelle auswählen " die Option "Microsoft SQL Server-Datenbankdatei" und dann " Weiter" aus.

  7. Wählen Sie auf dem Bildschirm "Verbindung hinzufügen " die Option "Durchsuchen", navigieren Sie zu der northwnd.mdf Datei, und wählen Sie dann "Öffnen" aus.

  8. Wählen Sie entweder die Windows-Authentifizierung aus, oder wählen Sie die SQL Server-Authentifizierung aus, und geben Sie einen Benutzernamen und ein Kennwort für den Zugriff auf die Datenbank an.

  9. Wählen Sie "Verbindung testen" aus, um die Verbindung zu testen. Wenn die Verbindung erfolgreich ist, wählen Sie "OK" aus.

  10. Bestätigen Sie auf der Seite " Datenverbindung auswählen ", dass die Datenbankdatei angezeigt wird, und wählen Sie "Weiter" aus.

  11. Wählen Sie Nein bei der Popupfrage Möchten Sie die Datei in Ihr Projekt kopieren und die Verbindung ändern?

  12. Wählen Sie auf der Seite Speichern der Verbindungszeichenfolge in der Anwendungskonfigurationsdatei die Option Ja aus. Benennen Sie die Verbindung NorthwindConnectionString, und wählen Sie dann "Weiter" aus.

  13. Erweitern Sie auf der Seite "Datenbankobjekte auswählen " den Knoten "Tabellen ", wählen Sie die Tabellen " Kunden " und " Bestellungen " aus, nennen Sie das Dataset "NorthwindDataSet", und wählen Sie dann "Fertig stellen" aus.

Das NorthwindDataSet wird ihrem Projekt hinzugefügt, und die Tabellen " Kunden " und "Bestellungen " werden im Fenster "Datenquellen " angezeigt.

Füllen des ersten Formulars

  • Um ein datengebundenes Raster zu erstellen, ziehen Sie den Knoten "Kunden " aus dem Fenster "Datenquellen " auf "Form1".

    Ein DataGridView Steuerelement und eine BindingNavigator Toolleiste zum Navigieren in Datensätzen werden in Form1 angezeigt. Ein NorthwindDataSet, CustomersTableAdapter, BindingSource und BindingNavigator werden im Komponentenbereich angezeigt.

Erstellen des zweiten Formulars

Erstellen Sie ein zweites Formular, an das Daten übergeben werden.

  1. Wählen Sie im Menü "Projekt " die Option " Formular hinzufügen" (Windows Forms) aus.

  2. Behalten Sie den Standardnamen von Form2 bei, und wählen Sie "Hinzufügen" aus.

  3. Ziehen Sie den Hauptknoten "Bestellungen" aus dem Fenster "Datenquellen " auf Formular2.

    Eine DataGridView und eine BindingNavigator Toolleiste zum Navigieren in Datensätze werden in Form2 angezeigt. Ein NorthwindDataSet, CustomersTableAdapter, BindingSource und BindingNavigator werden im Komponentenbereich angezeigt.

  4. Löschen Sie den OrdersBindingNavigator aus der Komponentenleiste. Der BindingNavigator verschwindet aus Form2.

Hinzufügen einer TableAdapter-Abfrage

Fügen Sie eine TableAdapter Abfrage zu Form2 hinzu, die Bestellungen für den Kunden lädt, der in Form1 ausgewählt ist.

  1. Doppelklicken Sie im Projektmappen-Explorer auf die Datei NorthwindDataSet.xsd.

  2. Klicken Sie in der Tabelle "Bestellungen" mit der rechten Maustaste auf "OrdersTableAdapter", und wählen Sie "Abfrage> aus.

  3. Behalten Sie die Standardoption " SQL-Anweisungen verwenden " bei, und wählen Sie "Weiter" aus.

  4. Lassen Sie die Standardoption SELECT, die Zeilen zurückgibt , und wählen Sie "Weiter" aus.

  5. Fügen Sie in "Welche Daten die Tabelle laden soll, um basierend auf dem Orders, eine CustomerID Klausel am Ende der Abfrage zurückzugebenWHERE. Die endgültige Abfrage sollte dem folgenden Code ähneln:

    SELECT OrderID, CustomerID, OrderDate, RequiredDate, ShippedDate, ShipVia, Freight, ShipName, ShipAddress, ShipCity, ShipRegion, ShipPostalCode, ShipCountry
    FROM Orders
    WHERE CustomerID = @CustomerID
    

    Hinweis

    Verwenden Sie die richtige Parametersyntax für Ihre Datenbank. Zum Beispiel würde in Microsoft Access die WHERE-Klausel wie folgt WHERE CustomerID = ? aussehen.

  6. Wählen Sie "Weiter" aus.

  7. Wählen Sie auf dem Bildschirm "Methoden zum Generieren auswählen " die Option "DataTable ausfüllen " aus, und geben Sie "FillByCustomerID" ein.

  8. Deaktivieren Sie die Option "DataTable zurückgeben ", und wählen Sie dann "Fertig stellen" aus.

Erstellen Sie eine Methode in Form2, um Daten zu übergeben an

  1. Klicken Sie mit der rechten Maustaste in Form2 , und wählen Sie "Code anzeigen" aus, um den Formular2-Code im Editor zu öffnen.

  2. Entfernen Sie im Form2-Code den Inhalt der Form2_Load Methode, und fügen Sie den folgenden Code nach der Form2_Load Methode hinzu:

internal void LoadOrders(String CustomerID)
{
    ordersTableAdapter.FillByCustomerID(northwindDataSet.Orders, CustomerID);
}

Erstellen einer Methode in Form1 zum Übergeben von Daten und Anzeigen von Form2

  1. Klicken Sie in der Designeransicht von Form1 mit der rechten Maustaste auf das Datenraster "Kunden", und wählen Sie dann "Eigenschaften" aus.

  2. Wählen Sie im Eigenschaftenfenster das Symbol "Ereignisse " in der oberen Symbolleiste aus.

  3. Doppelklicken Sie auf das DoubleClick-Ereignis , um den Code-Editor zu öffnen.

  4. Aktualisieren Sie im Code-Editor die Methodendefinition so, dass sie mit dem folgenden Beispiel übereinstimmt:

private void customersDataGridView_DoubleClick(object sender, EventArgs e)
{
    System.Data.DataRowView SelectedRowView;
    NorthwindDataSet.CustomersRow SelectedRow;

    SelectedRowView = (System.Data.DataRowView)customersBindingSource.Current;
    SelectedRow = (NorthwindDataSet.CustomersRow)SelectedRowView.Row;

    Form2 OrdersForm = new Form2();
    OrdersForm.LoadOrders(SelectedRow.CustomerID);
    OrdersForm.Show();
}

Ausführen und Testen der App

  1. Drücken Sie F5 , um die Anwendung auszuführen.

  2. Doppelklicken Sie in der Anwendung auf einen Kundendatensatz in Form1 , um Formular2 mit den Bestellungen dieses Kunden zu öffnen.

Nächste Schritte

Je nach Ihren Anwendungsanforderungen können Sie nach dem Übergeben von Daten zwischen Formularen mehrere Schritte ausführen. Einige Verbesserungen, die Sie an diesem Lernprogramm vornehmen können, sind: