Procedura: eseguire query in un database utilizzando LINQ (Visual Basic)
Con LINQ (Language Integrated Query) è possibile accedere più facilmente alle informazioni sul database ed eseguire query.
L'esempio seguente illustra come creare una nuova applicazione che esegue query su 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.
Nota
I nomi o i percorsi visualizzati per alcuni elementi dell'interfaccia utente di Visual Studio nelle istruzioni seguenti potrebbero essere diversi nel computer in uso. La versione di Visual Studio in uso e le impostazioni configurate determinano questi elementi. Per altre informazioni, vedere Personalizzazione dell'IDE.
Per creare una connessione a un database
In Visual Studio aprire Esplora server/Esplora database facendo clic su Esplora server/Esplora database nel menu Visualizza.
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 contenente 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 file northwind.dbml.
Per aggiungere tabelle per eseguire query in Object Relational Designer
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. Fare clic sulla tabella Orders e trascinarla nel riquadro sinistro della finestra di progettazione.
La finestra di progettazione crea nuovi oggetti
Customer
eOrder
per il progetto. Si noti che la finestra di progettazione rileva automaticamente le relazioni tra le tabelle e crea proprietà figlio per gli oggetti correlati. Ad esempio, IntelliSense mostrerà che l'oggettoCustomer
include una proprietàOrders
per tutti gli ordini correlati a tale cliente.Salvare le modifiche e chiudere la finestra di progettazione.
Salvare il progetto.
Per aggiungere codice per eseguire query sul database e visualizzare i risultati
Dalla casella degli strumenti trascinare un controllo DataGridView nel modulo Windows Form predefinito per il progetto, Form1.
Fare doppio clic su Form1 per aggiungere codice all'evento
Load
del modulo.Quando sono state aggiunte tabelle a Object Relational Designer, la finestra di progettazione ha aggiunto un oggetto DataContext per il progetto. Questo oggetto contiene il codice necessario per accedere a tali tabelle, oltre a singoli oggetti e raccolte per ogni 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 di DataContext nel codice ed eseguire query sulle tabelle specificate da Object Relational Designer.
Aggiungere il codice seguente all'evento
Load
per eseguire query sulle tabelle esposte come proprietà del contesto dei dati.Dim db As New northwindDataContext Dim londonCusts = From cust In db.Customers Where cust.City = "London" Select cust DataGridView1.DataSource = londonCusts
Premere F5 per eseguire il progetto e visualizzare i risultati.
Di seguito sono riportate alcune query aggiuntive che è possibile provare:
Dim londonCustOrders = From cust In db.Customers, ord In cust.Orders Where cust.City = "London" Order By ord.OrderID Select cust.City, ord.OrderID, ord.OrderDate DataGridView1.DataSource = londonCustOrders
Dim custs = From cust In db.Customers Where cust.Country = "France" And (cust.CompanyName.StartsWith("F") Or cust.CompanyName.StartsWith("V")) Order By cust.CompanyName Select cust.CompanyName, cust.City DataGridView1.DataSource = custs