Procedura: Modificare i dati in un database tramite LINQ (Visual Basic)
Language-Integrated query LINQ semplificano l'accesso alle informazioni sul database e la modifica dei valori nel database.
Nell'esempio seguente viene illustrato come creare una nuova applicazione che recupera e aggiorna le informazioni in un database di SQL Server.
Gli esempi in questo articolo usano il database di esempio Northwind. Per ottenere il database, consultare Scaricare database di esempio.
Per creare una connessione a un database
In Visual Studio aprire Esplora server/Esplora database facendo clic sul menu Visualizza e quindi seleziona Esplora server/Esplora database.
Fare clic con il pulsante destro del mouse su Connessioni dati in Esplora server/Esplora databasee scegliere Aggiungi connessione.
Specificare una connessione valida al database di esempio Northwind.
Per aggiungere un progetto con un file LINQ to SQL
In Visual Studio, nel menu File puntare su Nuovo e quindi fare clic su Progetto. Selezionare Visual Basic Windows Form Application come tipo di progetto.
Nel menu Progetto , fare clic su Aggiungi Nuovo Elemento. Selezionare il modello di elemento LINQ to SQL Classi.
Denominare il file
northwind.dbml
. Fare clic su Aggiungi. Progettazione relazionale oggetti (O/R Designer) viene aperto per il filenorthwind.dbml
.
Per aggiungere tabelle da interrogare e modificare nel designer
In Esplora server e/Esplora database, espandi la connessione al database Northwind. Espandi la cartella Tabelle.
Se è stata chiusa la finestra di progettazione O/R, è possibile riaprirla facendo doppio clic sul file
northwind.dbml
aggiunto in precedenza.Fare clic sulla tabella Customers e trascinarla nel riquadro sinistro della finestra di progettazione.
Il designer crea un nuovo oggetto Cliente per il tuo progetto.
Salvare le modifiche e chiudere la finestra di progettazione.
Salva il progetto.
Per aggiungere codice per modificare il database e visualizzare i risultati
Dalla casella degli strumenti trascinare un controllo DataGridView nel Windows Form predefinito per il progetto, Form1.
Quando hai aggiunto tabelle al Designer O/R, il progettista ha aggiunto un oggetto DataContext al tuo progetto. Questo oggetto contiene codice che è possibile usare per accedere alla tabella Customers. Contiene anche codice che definisce un oggetto Customer locale e una collezione di Customers locali per la tabella. L'oggetto DataContext del tuo progetto è chiamato in base al nome del tuo file .dbml. Per questo progetto, l'oggetto DataContext è denominato
northwindDataContext
.È possibile creare un'istanza dell'oggetto DataContext nel codice e interrogare e modificare la raccolta dei clienti specificata dal progettista O/R. Le modifiche apportate all'insieme Customers non vengono aggiornate nel database finché non le invii chiamando il metodo SubmitChanges dell'oggetto DataContext.
Fare doppio clic su Windows Form, Form1, per aggiungere codice all'evento Load per eseguire una query sulla tabella Customers esposta come proprietà del DataContext. Aggiungere il codice seguente:
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
Dalla casella degli strumenti trascinare tre controlli Button nel form. Selezionare il primo controllo
Button
. Nella finestra Proprietà, impostare ilName
del controlloButton
suAddButton
e ilText
suAdd
. Selezionare il secondo pulsante e impostare la proprietàName
suUpdateButton
e la proprietàText
suUpdate
. Selezionare il terzo pulsante e impostare la proprietàName
suDeleteButton
e la proprietàText
suDelete
.Fare doppio clic sul pulsante aggiungi per aggiungere codice all'evento
Click
. Aggiungere il codice seguente: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
Fare doppio clic sul pulsante Update per aggiungere codice all'evento
Click
. Aggiungere il codice seguente: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
Fare doppio clic sul pulsante Elimina per aggiungere codice al suo evento
Click
. Aggiungere il codice seguente: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
Premere F5 per eseguire il progetto. Fare clic su Aggiungi per aggiungere un nuovo record. Fare clic su Aggiorna per modificare il nuovo record. Cliccare su Elimina per eliminare il nuovo record.