Condividi tramite


Procedura: Filtrare i risultati delle query usando LINQ (Visual Basic)

Language-Integrated Query (LINQ) semplifica l'accesso alle informazioni sul database ed esegue query.

Nell'esempio seguente viene illustrato come creare una nuova applicazione che esegue query su un database di SQL Server e filtrare i risultati in base a un determinato valore usando la clausola Where. Per ulteriori informazioni, consultare la clausola WHERE .

Gli esempi in questo articolo usano il database di esempio Northwind. Per ottenere il database, vedere Scaricamento di database di esempio.

Nota

Il computer potrebbe visualizzare nomi o percorsi diversi per alcuni degli elementi dell'interfaccia utente di Visual Studio nelle istruzioni seguenti. L'edizione di Visual Studio disponibile e le impostazioni usate determinano questi elementi. Per ulteriori informazioni, vedere Personalizzare l'IDE.

Per creare una connessione a un database

  1. In Visual Studio, aprire Esplora server /Esplora database facendo clic su Esplora server /Esplora database nel menu Visualizza .

  2. Fare clic con il pulsante destro del mouse su connessioni dati in Esplora server/Esplora database e quindi su Aggiungi connessione.

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

Per aggiungere un progetto contenente un file LINQ to SQL

  1. In Visual Studio, dal menu File, puntare su Nuovo e quindi fare clic su Progetto. Selezionare Visual Basic Windows Form Application come tipo di progetto.

  2. Nel menu Progetto, fare clic su Aggiungi nuovo elemento. Selezionare il modello di elemento classi LINQ to SQL.

  3. Denominare il file northwind.dbml. Fare clic su Aggiungi. Verrà aperto Progettazione relazionale oggetti (O/R Designer) per il file northwind.dbml.

Per aggiungere tabelle da interrogare nel Progettazione O/R

  1. In Esplora Server/Esplora Database, espandi la connessione al database Northwind. Espandere la cartella Tabelle di.

    Se la finestra di progettazione O/R è stata chiusa, è possibile riaprirla 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.

    Il designer crea nuovi oggetti Customer e Order per il tuo 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'oggetto Customer ha una proprietà Orders per tutti gli ordini correlati al cliente.

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

  4. Salva il tuo progetto.

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

  1. Trascina un controllo DataGridView sul Windows Form predefinito per il tuo progetto, Form1, dalla casella degli strumenti .

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

  3. Quando sono state aggiunte tabelle alla finestra di progettazione O/R, 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. L'oggetto DataContext per il tuo progetto è denominato in base al nome del tuo file .dbml. Per questo progetto, l'oggetto DataContext è denominato northwindDataContext.

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

    Aggiungi il seguente codice all'evento Load per eseguire query sulle tabelle esposte come proprietà del contesto dei dati. La query filtra i risultati e restituisce solo i clienti che si trovano in London.

    Dim db As New northwindDataContext
    
    Dim customers_London = From cust In db.Customers
                           Where cust.City = "London"
                           Select cust.CustomerID, cust.CompanyName,
                                  OrderCount = cust.Orders.Count,
                                  cust.City, cust.Country
    
    DataGridView1.DataSource = customers_London
    
  4. Premere F5 per eseguire il progetto e visualizzare i risultati.

  5. Di seguito sono riportati alcuni altri filtri che è possibile provare.

    Dim companies_H = From cust In db.Customers
                      Where cust.Orders.Count > 0 And
                            cust.CompanyName.StartsWith("H")
                      Select cust.CustomerID, cust.CompanyName,
                             OrderCount = cust.Orders.Count,
                             cust.Country
    
    Dim customers_USA = From cust In db.Customers
                        Where cust.Orders.Count > 15 And
                              cust.Country = "USA"
                        Select cust.CustomerID, cust.CompanyName,
                               OrderCount = cust.Orders.Count,
                               cust.Country
    

Vedere anche