Procedura: modificare dati in un database utilizzando LINQ (Visual Basic)
Le query LINQ (Language Integrated Query) 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.
Negli esempi riportati in questo argomento viene usato il database di esempio Northwind. Se questo database non è presente nel computer di sviluppo, è possibile scaricarlo dall' Area download Microsoft. Per istruzioni, vedere Download di 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 selezionare Esplora server/Esplora database.
Fare clic con il pulsante destro del mouse su Connessioni dati in Esplora server/Esplora database e quindi fare clic su Aggiungi connessione.
Specificare una connessione valida al database di esempio Northwind.
Per aggiungere un progetto con un file LINQ to SQL
In Visual Studio scegliere Nuovo dal menu File e quindi fare clic su Progetto. Selezionare Windows Forms Application di Visual Basic come tipo di progetto.
Dal menu Progetto fare clic su Aggiungi nuovo elemento. Selezionare il modello di elemento Classi LINQ to SQL.
Denominare il file
northwind.dbml
. Fare clic su Aggiungi. Verrà aperto Object Relational Designer per il filenorthwind.dbml
.
Per aggiungere le tabelle per l'esecuzione di query e la modifica nella finestra di progettazione
In Esplora server/Esplora database espandere la connessione al database Northwind. Espandere la cartella Tabelle .
Se Object Relational Designer è stato chiuso, è possibile riaprirlo facendo doppio clic sul file
northwind.dbml
aggiunto in precedenza.Fare clic sulla tabella Customers e trascinarla nel riquadro sinistro della finestra di progettazione.
La finestra di progettazione crea un nuovo oggetto Customer per il progetto.
Salvare le modifiche e chiudere la finestra di progettazione.
Salvare il progetto.
Per aggiungere il codice per modificare il database e visualizzare i risultati
Dalla casella degli strumenti trascinare un controllo DataGridView nel modulo Windows Form predefinito per il progetto, Form1.
Quando sono state aggiunte tabelle a Object Relational Designer, la finestra di progettazione ha aggiunto un oggetto DataContext al progetto. Questo oggetto contiene il codice che è possibile usare per accedere alla tabella Customers. Contiene anche il codice che definisce un oggetto Customer locale e una raccolta Customers per la tabella. All'oggetto DataContext per il progetto viene assegnato un nome basato su quello del file con estensione dbml. Per questo progetto il nome dell'oggetto DataContext è
northwindDataContext
.È possibile creare un'istanza dell'oggetto DataContext nel codice ed eseguire query e modificare la raccolta Customers specificata da Object Relational Designer. Le modifiche apportate alla raccolta Customers non si riflettono nel database finché non vengono inviate chiamando il metodo SubmitChanges dell'oggetto DataContext.
Fare doppio clic sul modulo Windows Form, Form1, per aggiungere codice all'evento Load per eseguire query sulla tabella Customers esposta come proprietà dell'oggetto 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 modulo. Selezionare il primo controllo
Button
. Nella finestra Proprietà impostare il valore diName
del controlloButton
suAddButton
e il valore diText
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 il 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 Aggiorna per aggiungere il 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 il codice all'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. Fare clic su Elimina per eliminare il nuovo record.