Dela via


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

Linq-frågor (Language-Integrated Query) gör det enkelt att komma åt databasinformation och ändra värden i databasen.

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

Exemplen i det här avsnittet använder Northwind-exempeldatabasen. Om du inte har den här databasen på utvecklingsdatorn kan du ladda ned den från Microsoft Download Center. Anvisningar finns i Ladda ned exempeldatabaser.

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

  1. Öppna Server Explorer/Database Explorer i Visual Studio genom att klicka på menyn Visa och sedan välja Server Explorer/Database Explorer.

  2. Högerklicka på Data Anslut ions i Server Explorer/Database Explorer och klicka på Lägg till Anslut ion.

  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 Arkiv-menyn, pekar på Ny och klickar sedan på Projekt. Välj Visual Basic Windows Forms Application som projekttyp.

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

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

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

  1. I Server Explorer/Database Explorer expanderar du anslutningen till Northwind-databasen. Expandera mappen Tabeller.

    Om du har stängt O/R Designer kan du öppna den igen genom att northwind.dbml dubbelklicka på filen 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 ditt projekt.

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

  1. Dra en DataGridView kontroll från verktygslådan till 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. Objektet DataContext för projektet namnges baserat på namnet på .dbml-filen. För det här projektet DataContext heter northwindDataContextobjektet .

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

    Dubbelklicka på Windows-formuläret, Formulär1, för att lägga till kod i Load händelsen för att fråga tabellen Kunder som exponeras som en egenskap för 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. Dra tre Button kontroller till formuläret från verktygslådan. Välj den första Button kontrollen. I fönstret Egenskaper anger du NameButton kontrollen till AddButton och Text till Add. Välj den andra knappen och ange Name egenskapen till UpdateButton och egenskapen Text till Update. Välj den tredje knappen och ange Name egenskapen till DeleteButton och egenskapen Text till Delete.

  4. Dubbelklicka på knappen Lägg till för att lägga till kod i händelsen 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 händelsen Click . 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 Ta bort för att lägga till kod i händelsen Click . 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 posten. Klicka på Ta bort för att ta bort den nya posten.

Se även