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

  1. Öffnen Sie in Visual Studio Server Explorer/Database Explorer, indem Sie im Menü Ansicht auf Server Explorer/Database Explorer klicken.

  2. Klicken Sie mit der rechten Maustaste auf Datenverbindungen in Server Explorer/Datenbank Explorer und klicken Sie dann auf Verbindung hinzufügen.

  3. Geben Sie eine gültige Verbindung mit der Northwind-Beispieldatenbank an.

So fügen Sie ein Projekt mit einer LINQ to SQL-Datei hinzu

  1. 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.

  2. Klicken Sie im Menü Projekt auf Neues Element hinzufügen. Wählen Sie die Objektvorlage LINQ to SQL-Klassen.

  3. Nennen Sie die Datei northwind.dbml. Klicken Sie auf Hinzufügen. Der Objektrelationale Designer (O/R-Designer) wird für die Datei northwind.dbml geöffnet.

So fügen Sie Tabellen zum Abfragen und Ändern zum Designer hinzu

  1. 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.

  2. 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.

  3. Speichern Sie Ihre Änderungen und schließen Sie den Designer.

  4. Speichern Sie das Projekt.

So fügen Sie Code hinzu, um die Datenbank zu ändern und die Ergebnisse anzuzeigen

  1. Ziehen Sie aus der Toolbox ein DataGridView-Steuerelement auf das Standard-Windows-Formular „Form1“ Ihres Projekts.

  2. 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
    
  3. Ziehen Sie drei Button-Steuerelemente aus der Toolbox auf das Formular. Wählen Sie das erste Button-Steuerelement aus. Legen Sie im Fenster Eigenschaften den Name des Button-Steuerelements auf AddButton und den Text auf Add fest. Wählen Sie die zweite Schaltfläche aus und legen Sie die Name-Eigenschaft auf UpdateButton und die Text-Eigenschaft auf Updatefest. Wählen Sie die dritte Schaltfläche aus und legen Sie die Name-Eigenschaft auf DeleteButton und die Text-Eigenschaft auf Deletefest.

  4. 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
    
  5. 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
    
  6. 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
    
  7. 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.

Weitere Informationen