Procedura: eseguire query in un database utilizzando LINQ (Visual Basic)

Language-Integrated Query (LINQ) semplifica l'accesso alle informazioni sul database e l'esecuzione di query.

Nell'esempio seguente viene illustrato come creare una nuova applicazione che esegue query su un database SQL Server database .

Negli esempi di questo argomento viene utilizzato 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

Nomi o 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

  1. In Visual Studio aprire Esplora server Esplora database scegliendo Esplora server / / Esplora database dal menu Visualizza.

  2. Fare clic con il pulsante destro del mouse su Connessioni dati Esplora server / Esplora database quindi scegliere Aggiungi connessione.

  3. Specificare una connessione valida al database di esempio Northwind.

Per aggiungere un progetto che contiene un file LINQ to SQL

  1. In Visual Studio scegliere Nuovo dal menu File e quindi fare clic su Project. Selezionare Visual Basic Windows'applicazione Form come tipo di progetto.

  2. Dal menu Progetto fare clic su Aggiungi nuovo elemento. Selezionare il modello LINQ to SQL di elemento Classi.

  3. Assegnare al file il nome northwind.dbml. Fare clic su Aggiungi. Il Object Relational Designer (O/R Designer) viene aperto per il file northwind.dbml.

Per aggiungere tabelle per eseguire query in O/R Designer

  1. In Esplora server / Esplora database espandere la connessione al database Northwind. Espandere la cartella Tabelle .

    Se O/R Designer è stato chiuso, è possibile riaprirlo facendo doppio clic sul file northwind.dbml aggiunto in precedenza.

  2. 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 Customer nuovi oggetti e per il Order progetto. Si noti che la finestra di progettazione rileva automaticamente le relazioni tra le tabelle e crea proprietà figlio per gli oggetti correlati. IntelliSense, ad esempio, mostrerà che l'oggetto ha una proprietà Customer per tutti gli ordini correlati a tale Orders cliente.

  3. Salvare le modifiche e chiudere la finestra di progettazione.

  4. Salvare il progetto.

Per aggiungere codice per eseguire query sul database e visualizzare i risultati

  1. Dalla Casella degli strumenti DataGridView trascinare un controllo nel controllo Windows Form per il progetto, Form1.

  2. Fare doppio clic su Form1 per aggiungere codice Load all'evento del form.

  3. Quando sono state aggiunte tabelle a Object Object Designer, la finestra di progettazione ha aggiunto un DataContext oggetto per il progetto. Questo oggetto contiene il codice necessario per accedere a tali tabelle, oltre a singoli oggetti e raccolte per ogni tabella. DataContextL'oggetto per il progetto viene denominato in base al nome del file con estensione dbml. Per questo progetto, DataContext l'oggetto è denominato northwindDataContext .

    È possibile creare un'istanza di DataContext nel codice ed eseguire query sulle tabelle specificate da O/R Designer.

    Aggiungere il codice seguente Load all'evento per eseguire query sulle tabelle esposte come proprietà del contesto dati.

    Dim db As New northwindDataContext
    
    Dim londonCusts = From cust In db.Customers
                      Where cust.City = "London"
                      Select cust
    
    DataGridView1.DataSource = londonCusts
    
  4. Premere F5 per eseguire il progetto e visualizzare i risultati.

  5. 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
    

Vedi anche