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
I Visual Studio öppnar du Server Explorer/Database Explorer genom att klicka på menyn Visa och sedan välja Server Explorer/Database Explorer.
Högerklicka på Dataanslutningar i Server Explorer/Database Exploreroch klicka på Lägg till anslutning.
Ange en giltig anslutning till Northwind-exempeldatabasen.
Så här lägger du till ett projekt med en LINQ i SQL-fil
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.
På menyn Project klickar du på Lägg till nytt objekt. Välj elementmallen LINQ till SQL-klasser.
Ge filen namnet
northwind.dbml
. Klicka på Lägg till. Objektrelationsdesignern (O/R Designer) öppnas för filennorthwind.dbml
.
Så här lägger du till tabeller för att fråga och ändra till designern
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.Klicka på tabellen Kunder och dra den till den vänstra rutan i designern.
Designern skapar ett nytt kundobjekt för projektet.
Spara ändringarna och stäng designern.
Spara projektet.
Så här lägger du till kod för att ändra databasen och visa resultatet
Dra en DataGridView-kontroll från Toolboxtill standardformuläret för ditt projekt, Form1.
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
Från Toolbox, dra tre Button kontroller till formuläret. Välj den första
Button
-kontrollen. I fönstret Egenskaper anger duName
för kontrollenButton
tillAddButton
ochText
tillAdd
. Välj den andra knappen och ange egenskapenName
tillUpdateButton
och egenskapenText
tillUpdate
. Välj den tredje knappen och ange egenskapenName
tillDeleteButton
och egenskapenText
tillDelete
.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
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
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
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.