Dela via


Gör så här: Ändra data i en databas med hjälp av LINQ (Visual Basic)

Language-Integrated Frågeställningar (LINQ) gör det enkelt att komma åt information i databasen och ändra värden.

I följande exempel visas hur du skapar ett nytt program som hämtar och uppdaterar information i en SQL Server-databas.

Exemplen i den här artikeln använder Northwind-exempeldatabasen. Information om hur du hämtar databasen finns i Hämta exempeldatabaser.

Så här skapar du en anslutning till en databas

  1. I Visual Studio öppnar du Server Explorer/Database Explorer genom att klicka på menyn Visa och sedan välja Server Explorer/Database Explorer.

  2. Högerklicka på Dataanslutningar i Server Explorer/Database Exploreroch klicka på Lägg till anslutning.

  3. Ange en giltig anslutning till Northwind-exempeldatabasen.

Så här lägger du till ett projekt med en LINQ i SQL-fil

  1. I Visual Studio går du till menyn Arkiv, pekar på Ny och klickar sedan på Projekt. Välj Visual Basic Windows Forms Application som projekttyp.

  2. På menyn Project klickar du på Lägg till nytt objekt. Välj elementmallen LINQ till SQL-klasser.

  3. Ge filen namnet northwind.dbml. Klicka på Lägg till. Objektrelationsdesignern (O/R Designer) öppnas för filen northwind.dbml.

Så här lägger du till tabeller för att fråga och ändra till designern

  1. I Server Explorer/Database Explorerexpanderar du anslutningen till Northwind-databasen. Expandera mappen Tables.

    Om du har stängt O/R Designer kan du öppna den igen genom att dubbelklicka på den northwind.dbml fil som du lade till tidigare.

  2. Klicka på tabellen Kunder och dra den till den vänstra rutan i designern.

    Designern skapar ett nytt kundobjekt för projektet.

  3. Spara ändringarna och stäng designern.

  4. Spara projektet.

Så här lägger du till kod för att ändra databasen och visa resultatet

  1. Dra en DataGridView-kontroll från Toolboxtill standardformuläret för ditt projekt, Form1.

  2. När du lade till tabeller i O/R Designer lade designern till ett DataContext objekt i projektet. Det här objektet innehåller kod som du kan använda för att komma åt tabellen Kunder. Den innehåller också kod som definierar ett lokalt kundobjekt och en kundsamling för tabellen. Det DataContext objektet för projektet namnges baserat på namnet på .dbml-filen. För det här projektet heter DataContext-objektet northwindDataContext.

    Du kan skapa en instans av DataContext-objektet i koden och fråga och ändra den kundsamling som anges av O/R Designer. Ändringar som du gör i samlingen Kunder återspeglas inte i databasen förrän du skickar dem genom att anropa metoden SubmitChanges för DataContext-objektet.

    Dubbelklicka på Windows Form, Form1, för att lägga till kod i händelsen Load för att göra en fråga mot tabellen Customers, som visas som en egenskap i din DataContext. Lägg till följande kod:

    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. Från Toolbox, dra tre Button kontroller till formuläret. Välj den första Button-kontrollen. I fönstret Egenskaper anger du Name för kontrollen Button till AddButton och Text till Add. Välj den andra knappen och ange egenskapen Name till UpdateButton och egenskapen Text till Update. Välj den tredje knappen och ange egenskapen Name till DeleteButton och egenskapen Text till Delete.

  4. Dubbelklicka på knappen Lägg till för att lägga till kod i dess händelse Click. Lägg till följande kod:

    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. Dubbelklicka på knappen Uppdatera för att lägga till kod i dess Click händelse. Lägg till följande kod:

    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. Dubbelklicka på knappen Delete för att lägga till kod till dess Click händelse. Lägg till följande kod:

    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. Tryck på F5 för att köra projektet. Klicka på Lägg till för att lägga till en ny post. Klicka på Uppdatera för att ändra den nya dokumentet. Klicka på Ta bort för att ta bort den nya posten.

Se även