Gewusst wie: Ändern von Daten in einer Datenbank mit LINQ (Visual Basic)
LINQ-Abfragen (Language-Integrated Query) erleichtern den Zugriff auf Datenbankinformationen und das Ändern von Werten in der Datenbank.
Das folgende Beispiel zeigt, wie Sie eine neue Anwendung erstellen, die Informationen in einer SQL Server-Datenbank abruft und aktualisiert.
In den Beispielen in diesem Thema wird die Northwind-Beispieldatenbank verwendet. Befindet sich diese Datenbank nicht auf Ihrem Entwicklungscomputer, können Sie sie aus dem Microsoft Download Center herunterladen. Anweisungen hierzu finden Sie unter Herunterladen von Beispieldatenbanken.
Herstellen einer Verbindung mit einer Datenbank
Öffnen Sie in Visual Studio Server Explorer/Database Explorer, indem Sie im Menü Ansicht auf Server Explorer/Database Explorer klicken.
Klicken Sie mit der rechten Maustaste auf Datenverbindungen in Server Explorer/Datenbank Explorer und klicken Sie dann auf Verbindung hinzufügen.
Geben Sie eine gültige Verbindung mit der Northwind-Beispieldatenbank an.
So fügen Sie ein Projekt mit einer LINQ to SQL-Datei hinzu
Zeigen Sie in Visual Studio im Menü Datei auf Neu, und klicken Sie auf Projekt. Wählen Sie Visual Basic Windows Forms Anwendung als Projekttyp aus.
Klicken Sie im Menü Projekt auf Neues Element hinzufügen. Wählen Sie die Objektvorlage LINQ to SQL-Klassen.
Nennen Sie die Datei
northwind.dbml
. Klicken Sie auf Hinzufügen. Der Objektrelationale Designer (O/R-Designer) wird für die Dateinorthwind.dbml
geöffnet.
So fügen Sie Tabellen zum Abfragen und Ändern zum Designer hinzu
Erweitern Sie in Server Explorer/Database Explorer die Verbindung mit der Northwind-Datenbank. Erweitern Sie den Ordner Tabellen .
Wenn Sie den O/R-Designer geschlossen haben, können Sie ihn erneut öffnen, indem Sie auf die Datei
northwind.dbml
doppelklicken, die Sie zuvor hinzugefügt haben.Klicken Sie auf die Tabelle „Customers“ und ziehen Sie sie in den linken Bereich des Designers.
Der Designer erstellt ein neues Customer-Objekt für Ihr Projekt.
Speichern Sie Ihre Änderungen und schließen Sie den Designer.
Speichern Sie das Projekt.
So fügen Sie Code hinzu, um die Datenbank zu ändern und die Ergebnisse anzuzeigen
Ziehen Sie aus der Toolbox ein DataGridView-Steuerelement auf das Standard-Windows-Formular „Form1“ Ihres Projekts.
Wenn Sie dem O/R-Designer Tabellen hinzugefügt haben, hat der Designer ihrem Projekt ein DataContext-Objekt hinzugefügt. Dieses Objekt enthält Code, mit dem Sie auf die Tabelle „Customers“ zugreifen können. Außerdem enthält es Code, der ein lokales Customer-Objekt und eine Customers-Auflistung für die Tabelle definiert. Das DataContext-Objekt des Projekts wird auf Grundlage des Namens der DBML-Datei benannt. Für dieses Projekt hat das DataContext-Objekt den Namen
northwindDataContext
.Sie können eine Instanz des DataContext-Objekts in Ihrem Code erstellen und abfragen und die vom O/R-Designer angegebene Customers-Auflistung ändern. Änderungen, die Sie an der Customers-Auflistung vornehmen, werden erst in der Datenbank widerspiegelt, wenn Sie sie durch Aufrufen der SubmitChanges-Methode des DataContext-Objekts übermitteln.
Doppelklicken Sie auf Windows Form, Form1, um dem Load-Ereignis Code hinzuzufügen und die Tabelle „Customers“ abzufragen, die als Eigenschaft Ihres DataContext verfügbar ist. Fügen Sie den folgenden Code hinzu:
Private db As northwindDataContext Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs ) Handles MyBase.Load db = New northwindDataContext() RefreshData() End Sub Private Sub RefreshData() Dim customers = From cust In db.Customers Where cust.City(0) = "W" Select cust DataGridView1.DataSource = customers End Sub
Ziehen Sie drei Button-Steuerelemente aus der Toolbox auf das Formular. Wählen Sie das erste
Button
-Steuerelement aus. Legen Sie im Fenster Eigenschaften denName
desButton
-Steuerelements aufAddButton
und denText
aufAdd
fest. Wählen Sie die zweite Schaltfläche aus und legen Sie dieName
-Eigenschaft aufUpdateButton
und dieText
-Eigenschaft aufUpdate
fest. Wählen Sie die dritte Schaltfläche aus und legen Sie dieName
-Eigenschaft aufDeleteButton
und dieText
-Eigenschaft aufDelete
fest.Doppelklicken Sie auf die Schaltfläche Hinzufügen, um dem
Click
-Ereignis Code hinzuzufügen. Fügen Sie den folgenden Code hinzu:Private Sub AddButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs ) Handles AddButton.Click Dim cust As New Customer With { .City = "Wellington", .CompanyName = "Blue Yonder Airlines", .ContactName = "Jill Frank", .Country = "New Zealand", .CustomerID = "JILLF"} db.Customers.InsertOnSubmit(cust) Try db.SubmitChanges() Catch ' Handle exception. End Try RefreshData() End Sub
Doppelklicken Sie auf die Schaltfläche Aktualisieren, um dem
Click
-Ereignis Code hinzuzufügen. Fügen Sie den folgenden Code hinzu:Private Sub UpdateButton_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs ) Handles UpdateButton.Click Dim updateCust = (From cust In db.Customers Where cust.CustomerID = "JILLF").ToList()(0) updateCust.ContactName = "Jill Shrader" updateCust.Country = "Wales" updateCust.CompanyName = "Red Yonder Airlines" updateCust.City = "Cardiff" Try db.SubmitChanges() Catch ' Handle exception. End Try RefreshData() End Sub
Doppelklicken Sie auf die Schaltfläche Löschen, um dem
Click
-Ereignis Code hinzuzufügen. Fügen Sie den folgenden Code hinzu:Private Sub DeleteButton_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs ) Handles DeleteButton.Click Dim deleteCust = (From cust In db.Customers Where cust.CustomerID = "JILLF").ToList()(0) db.Customers.DeleteOnSubmit(deleteCust) Try db.SubmitChanges() Catch ' Handle exception. End Try RefreshData() End Sub
Drücken Sie F5, um das Projekt auszuführen. Klicken Sie auf Hinzufügen, um einen neuen Datensatz hinzuzufügen. Klicken Sie auf Aktualisieren, um den neuen Datensatz zu ändern. Klicken Sie auf Löschen, um den neuen Datensatz zu löschen.