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
Öppna Server Explorer/Database Explorer i Visual Studio genom att klicka på menyn Visa och sedan välja Server Explorer/Database Explorer.
Högerklicka på Data Anslut ions i Server Explorer/Database Explorer och klicka på Lägg till Anslut ion.
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 Arkiv-menyn, pekar på Ny och klickar sedan på Projekt. Välj Visual Basic Windows Forms Application som projekttyp.
På Projekt-menyn klickar du på Lägg till nytt objekt. Välj objektmallen LINQ till SQL-klasser .
Ge filen namnet
northwind.dbml
. Klicka på Lägg till. Objektrelationsdesignern (O/R Designer) öppnas förnorthwind.dbml
filen.
Så här lägger du till tabeller för att fråga och ändra till designern
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.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 ditt projekt.
Så här lägger du till kod för att ändra databasen och visa resultatet
Dra en DataGridView kontroll från verktygslådan till 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. Objektet DataContext för projektet namnges baserat på namnet på .dbml-filen. För det här projektet DataContext heter
northwindDataContext
objektet .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
Dra tre Button kontroller till formuläret från verktygslådan. Välj den första
Button
kontrollen. I fönstret Egenskaper anger duName
Button
kontrollen tillAddButton
ochText
tillAdd
. Välj den andra knappen och angeName
egenskapen tillUpdateButton
och egenskapenText
tillUpdate
. Välj den tredje knappen och angeName
egenskapen tillDeleteButton
och egenskapenText
tillDelete
.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
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
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
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.