Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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:
Ö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.
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.
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.
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
Wählen Sie in Visual Studio im Menü "Datei" die Option "Neues Projekt"> aus.
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.
Wählen Sie in der Projektvorlagenliste die Windows Forms-App (.NET Framework) und dann "Weiter" aus.
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
Öffnen Sie das Fenster Datenquellen, indem Sie im Visual Studio-Menü Projekt>Neue Datenquelle hinzufügen auswählen.
Wählen Sie im Fenster "Datenquellen " die Option "Neue Datenquelle hinzufügen " aus, um den Assistenten für die Datenquellenkonfiguration zu starten.
Wählen Sie auf der Seite " Datenquellentyp auswählen " die Option "Datenbank" und dann "Weiter" aus.
Überprüfen Sie auf der Seite "Datenbankmodell auswählen ", ob das Dataset angegeben ist, und wählen Sie "Weiter" aus.
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.
Wählen Sie auf dem Bildschirm " Datenquelle auswählen " die Option "Microsoft SQL Server-Datenbankdatei" und dann " Weiter" aus.
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.
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.
Wählen Sie "Verbindung testen" aus, um die Verbindung zu testen. Wenn die Verbindung erfolgreich ist, wählen Sie "OK" aus.
Bestätigen Sie auf der Seite " Datenverbindung auswählen ", dass die Datenbankdatei angezeigt wird, und wählen Sie "Weiter" aus.
Wählen Sie Nein bei der Popupfrage Möchten Sie die Datei in Ihr Projekt kopieren und die Verbindung ändern?
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.
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.
Wählen Sie im Menü "Projekt " die Option " Formular hinzufügen" (Windows Forms) aus.
Behalten Sie den Standardnamen von Form2 bei, und wählen Sie "Hinzufügen" aus.
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.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.
Doppelklicken Sie im Projektmappen-Explorer auf die Datei NorthwindDataSet.xsd.
Klicken Sie in der Tabelle "Bestellungen" mit der rechten Maustaste auf "OrdersTableAdapter", und wählen Sie "Abfrage> aus.
Behalten Sie die Standardoption " SQL-Anweisungen verwenden " bei, und wählen Sie "Weiter" aus.
Lassen Sie die Standardoption SELECT, die Zeilen zurückgibt , und wählen Sie "Weiter" aus.
Fügen Sie in "Welche Daten die Tabelle laden soll, um basierend auf dem
Orders
, eineCustomerID
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 folgtWHERE CustomerID = ?
aussehen.Wählen Sie "Weiter" aus.
Wählen Sie auf dem Bildschirm "Methoden zum Generieren auswählen " die Option "DataTable ausfüllen " aus, und geben Sie "FillByCustomerID" ein.
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
Klicken Sie mit der rechten Maustaste in Form2 , und wählen Sie "Code anzeigen" aus, um den Formular2-Code im Editor zu öffnen.
Entfernen Sie im Form2-Code den Inhalt der
Form2_Load
Methode, und fügen Sie den folgenden Code nach derForm2_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
Klicken Sie in der Designeransicht von Form1 mit der rechten Maustaste auf das Datenraster "Kunden", und wählen Sie dann "Eigenschaften" aus.
Wählen Sie im Eigenschaftenfenster das Symbol "Ereignisse " in der oberen Symbolleiste aus.
Doppelklicken Sie auf das DoubleClick-Ereignis , um den Code-Editor zu öffnen.
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
Drücken Sie F5 , um die Anwendung auszuführen.
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:
Bearbeiten des Datasets zum Hinzufügen oder Entfernen von Datenbankobjekten. Weitere Informationen finden Sie unter Erstellen und Konfigurieren von Datasets.
Hinzufügen von Funktionen zum Speichern von Daten in der Datenbank. Weitere Informationen finden Sie unter "Daten wieder in der Datenbank speichern".