Exemplarische Vorgehensweise: Übergeben von Daten zwischen Windows Forms
Veröffentlicht: Juli 2016
Diese exemplarische Vorgehensweise enthält eine Schritt-für-Schritt-Anleitung für die Datenübergabe von einem Formular zum anderen. Mit dem Verwenden der Tabellen Customers und Orders von Northwind können Benutzer mit einem Formular einen Kunden auswählen und mit einem zweiten die ausgewählte Bestellungen des Kunden anzeigen. Diese exemplarische Vorgehensweise zeigt, wie Sie eine Methode auf einem Formular erstellen, die die Daten aus dem ersten Formular empfängt.
Hinweis
Diese exemplarische Vorgehensweise zeigt nur eine Möglichkeit der Datenübergabe zwischen Formularen. Es gibt andere Optionen, mit denen sich Daten an ein Formular übergeben lassen, einschließlich folgender Ansätze: Sie können einen zweiten Konstruktor für den Datenempfang erstellen oder eine öffentliche Eigenschaft, in die Daten aus dem ersten Formular eingegeben werden können.
In dieser exemplarischen Vorgehensweise werden u. a. folgende Aufgaben veranschaulicht:
Erstellen eines neuen Projekts vom Typ Windows-Anwendung.
Erstellen und Konfigurieren eines Datasets mithilfe von Assistent zum Konfigurieren von Datenquellen.
Auswählen des Steuerelements, das für das Formular erstellt werden soll, wenn Elemente aus dem Datenquellenfenster gezogen werden. Weitere Informationen finden Sie unter Festlegen des Steuerelements, das beim Ziehen aus dem Datenquellenfenster erstellt werden soll.
Erstellen eines datengebundenen Steuerelements durch Ziehen von Elementen aus dem Datenquellenfenster auf das Formular.
Erstellen eines zweiten Formulars mit einem Raster für die Datenanzeige.
Erstellen einer TableAdapter-Abfrage für das Abrufen der Bestellungen eines bestimmten Kunden.
Übergeben von Daten zwischen Formularen.
Vorbereitungsmaßnahmen
Für die Durchführung dieser exemplarischen Vorgehensweise benötigen Sie Folgendes:
- Zugriff auf die Beispieldatenbank Northwind. Weitere Informationen finden Sie unter Gewusst wie: Installieren von Beispieldatenbanken.
Erstellen der Windows-Anwendung
So erstellen Sie ein neues Windows-Projekt
Erstellen Sie über das Menü Datei ein neues Projekt.
Geben Sie dem Projekt den Namen
PassingDataBetweenForms
.Wählen Sie Windows Forms-Anwendung aus, und klicken Sie auf OK. Weitere Informationen finden Sie unter Clientanwendungen.
Das Projekt PassingDataBetweenForms wird erstellt und zum Projektmappen-Explorer hinzugefügt.
Erstellen der Datenquelle
So erstellen Sie die Datenquelle
Klicken Sie im Menü Daten auf Datenquellen anzeigen.
Wählen Sie im Datenquellenfenster die Option Neue Datenquelle hinzufügen aus, um den Assistenten zum Konfigurieren von Datenquellen zu starten.
Wählen Sie auf der Seite Datenquellentyp auswählen die Option Datenbank aus, und klicken Sie auf Weiter.
Stellen Sie sicher, dass auf der Seite Datenbankmodell auswählen Dataset festgelegt ist und klicken Sie auf Weiter.
Führen Sie auf der Seite Wählen Sie Ihre Datenverbindung einen der folgenden Schritte aus:
Wenn in der Dropdownliste eine Datenverbindung zur Beispieldatenbank "Northwind" verfügbar ist, wählen Sie diese aus.
- oder -
Wählen Sie Neue Verbindung, um das Dialogfeld Verbindung hinzufügen/ändern zu öffnen.
Falls die Datenbank ein Kennwort erfordern sollte und wenn die Option für die Einbeziehung vertraulicher Daten aktiviert ist, wählen Sie die Option und klicken Sie dann auf Weiter.
Klicken Sie auf der Seite Verbindungszeichenfolge in der Programmkonfigurationsdatei speichern auf Weiter.
Erweitern Sie auf der Seite Datenbankobjekte auswählen den Knoten Tabellen.
Wählen Sie die Tabellen Kunden und Bestellungen aus, und klicken Sie dann auf Fertig stellen.
Das NorthwindDataSet wird dem Projekt hinzugefügt, und die Tabellen Customers und Orders werden im Datenquellenfenster angezeigt.
Das erste Formular erstellen (Form1)
Sie können ein datengebundenes Raster erstellen (ein DataGridView-Steuerelement), indem Sie den Knoten Customers aus dem Datenquellenfenster auf das Formular ziehen.
So erstellen Sie ein datengebundenes Raster auf dem Formular
Ziehen Sie den Hauptknoten Customers aus dem Datenquellenfenster auf Form1.
Eine DataGridView und eine Toolleiste (BindingNavigator) für das Navigieren durch Datensätze wird auf Form1 angezeigt. NorthwindDataSet, CustomersTableAdapter, BindingSource und BindingNavigator werden auf der Komponentenleiste angezeigt.
Das zweite Formular erstellen (Form2)
Erstellen eines zweiten Formulars, an das die Daten übergeben werden
Wählen Sie im Menü Projekt den Punkt Windows Form hinzufügen.
Belassen Sie den Standardnamen Form2 und klicken Sie Hinzufügen.
Ziehen Sie den Hauptknoten Orders aus dem Datenquellenfenster auf Form2.
Eine DataGridView und eine Toolleiste (BindingNavigator) für das Navigieren durch Datensätze wird auf Form2 angezeigt. NorthwindDataSet, CustomersTableAdapter, BindingSource und BindingNavigator werden auf der Komponentenleiste angezeigt.
Löschen Sie OrdersBindingNavigator aus der Komponentenleiste.
OrdersBindingNavigator wird von Form2 entfernt.
Hinzufügen einer TableAdapter-Abfrage zu Form2 für das Laden der Bestellungen ausgewählter Kunden auf Form1
So erstellen Sie eine TableAdapter-Abfrage
Doppelklicken Sie auf die Datei NorthwindDataSet.xsd in Projektmappen-Explorer.
Klicken Sie mit der rechten Maustaste auf OrdersTableAdapter und wählen Sie Abfrage hinzufügen.
Lassen Sie die Standardeinstellung SQL-Anweisung verwenden und klicken Sie anschließend auf Weiter.
Lassen Sie die Standardeinstellung SELECT-Anweisung, die Zeilen zurückgibt und klicken Sie anschließend auf Weiter.
Fügen Sie eine WHERE-Klausel zur Abfrage hinzu, sodass
Orders
auf Grundlage derCustomerID
zurückgeben wird. Die Abfrage müsste ungefähr wie folgt aussehen:SELECT OrderID, CustomerID, EmployeeID, OrderDate, RequiredDate, ShippedDate, ShipVia, Freight, ShipName, ShipAddress, ShipCity, ShipRegion, ShipPostalCode, ShipCountry FROM Orders WHERE CustomerID = @CustomerID
Hinweis
Überprüfen Sie die korrekte Parametersyntax für Ihre Datenbank. In Microsoft Access etwa würde die WHERE-Klausel so aussehen:
WHERE CustomerID = ?
.Klicken Sie auf Weiter.
Geben Sie für den DataTable füllen-Methodenname
FillByCustomerID
ein.Löschen Sie die Option DataTable zurückgeben und klicken Sie anschließend Weiter.
Klicken Sie auf Fertig stellen.
Erstellen einer Methode auf Form2 für das Übergeben von Daten an
Erstellen einer Methode für das Übergeben von Daten an
Klicken Sie mit der rechten Maustaste auf Form2 und wählen Sie Code anzeigen, sodass Form2 im Code-Editor geöffnet wird.
Fügen Sie den folgenden Code zu Form2 nach der
Form2_Load
-Methode hinzu:internal void LoadOrders(String CustomerID) { ordersTableAdapter.FillByCustomerID(northwindDataSet.Orders, CustomerID); }
Friend Sub LoadOrders(ByVal CustomerID As String) OrdersTableAdapter.FillByCustomerID(NorthwindDataSet.Orders, CustomerID) End Sub
Erstellen einer Methode auf Form1 für das Übergeben von Daten und das Anzeigen von Form2
Erstellen einer Methode für das Übergeben von Daten an Form2
Klicken Sie in Form1 mit der rechten Maustaste auf das Customer-Datenraster und dann auf Eigenschaften.
Klicken Sie im Fenster Eigenschaften auf Ereignisse.
Doppelklicken Sie das Ereignis CellDoubleClick.
Der Code-Editor wird angezeigt.
Aktualisieren Sie die Methodendefinition, sodass sie dem folgenden Beispiel entspricht:
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(); }
Private Sub CustomersDataGridView_DoubleClick() Handles CustomersDataGridView.DoubleClick Dim SelectedRowView As Data.DataRowView Dim SelectedRow As NorthwindDataSet.CustomersRow SelectedRowView = CType(CustomersBindingSource.Current, System.Data.DataRowView) SelectedRow = CType(SelectedRowView.Row, NorthwindDataSet.CustomersRow) Dim OrdersForm As New Form2 OrdersForm.LoadOrders(SelectedRow.CustomerID) OrdersForm.Show() End Sub
Ausführen der Anwendung
So führen Sie die Anwendung aus
Drücken Sie F5, um die Anwendung auszuführen.
Doppelklicken Sie einen Kundendatensatz in Form1, sodass dieser in Form2 mit den Bestellungen dieses Kunden geöffnet wird.
Nächste Schritte
Entsprechend den Anforderungen an Ihre Anwendung können Sie nach dem Übergeben der Daten zwischen den Formularen noch weitere Schritte ausführen. Sie können an dieser exemplarischen Vorgehensweise beispielsweise folgende Verbesserungen vornehmen:
Hinzufügen oder Entfernen von Datenbankobjekten aus dem Dataset durch Bearbeiten. Weitere Informationen finden Sie unter Gewusst wie: Bearbeiten eines Datasets.
Hinzufügen einer Funktion für das Zurückspeichern von Daten in der Datenbank. Weitere Informationen finden Sie unter Gewusst wie: Speichern von Datasetänderungen in einer Datenbank.
Siehe auch
Exemplarische Vorgehensweisen zur Arbeit mit Daten
Binden von Windows Forms-Steuerelementen an Daten in Visual Studio
Übersicht über Datenquellen
Übersicht über TableAdapters
Herstellen von Datenverbindungen in Visual Studio
Vorbereiten der Anwendung auf den Empfang von Daten
Abrufen von Daten für die Anwendung
Binden von Steuerelementen an Daten in Visual Studio
Bearbeiten von Daten in der Anwendung
Überprüfen von Daten
Speichern von Daten