Procedura: Ordina i risultati di Query utilizzando LINQ (Visual Basic)How to: Sort Query Results by Using LINQ (Visual Basic)

Language-Integrated Query (LINQ) semplifica accedere alle informazioni sul database ed eseguire query.Language-Integrated Query (LINQ) makes it easy to access database information and execute queries.

Nell'esempio seguente viene illustrato come creare una nuova applicazione che esegue query su un database di SQL Server e ordina i risultati per più campi usando la Order By clausola.The following example shows how to create a new application that performs queries against a SQL Server database and sorts the results by multiple fields by using the Order By clause. L'ordinamento per ogni campo può essere ordine crescente o decrescente.The sort order for each field can be ascending order or descending order. Per altre informazioni, vedere Order By Clause.For more information, see Order By Clause.

Gli esempi in questo argomento usano il database di esempio Northwind.The examples in this topic use the Northwind sample database. Se non è questo database nel computer di sviluppo, è possibile scaricarlo da Microsoft Download Center.If you do not have this database on your development computer, you can download it from the Microsoft Download Center. Per istruzioni, vedere download dei database di esempio.For instructions, see Downloading Sample Databases.

Nota

Nomi o percorsi visualizzati per alcuni elementi dell'interfaccia utente di Visual Studio nelle istruzioni seguenti potrebbero essere diversi nel computer in uso.Your computer might show different names or locations for some of the Visual Studio user interface elements in the following instructions. La versione di Visual Studio in uso e le impostazioni configurate determinano questi elementi.The Visual Studio edition that you have and the settings that you use determine these elements. Per altre informazioni, vedere Personalizzazione dell'IDE.For more information, see Personalizing the IDE.

Per creare una connessione a un databaseTo create a connection to a database

  1. In Visual Studio, aprire Esplora Server/Database Explorer facendo Esplora Server/Database Esplora nella visualizzazione menu.In Visual Studio, open Server Explorer/Database Explorer by clicking Server Explorer/Database Explorer on the View menu.

  2. Fare doppio clic su connessioni dati nelle Esplora Server/Esplora Database e quindi fare clic su Aggiungi connessione.Right-click Data Connections in Server Explorer/Database Explorer and then click Add Connection.

  3. Specificare una connessione valida al database di esempio Northwind.Specify a valid connection to the Northwind sample database.

Per aggiungere un progetto che contiene un file LINQ to SQLTo add a project that contains a LINQ to SQL file

  1. In Visual Studio scegliere Nuovo dal menu File e quindi fare clic su Progetto.In Visual Studio, on the File menu, point to New and then click Project. Selezionare Visual Basic Windows Forms Application come tipo di progetto.Select Visual Basic Windows Forms Application as the project type.

  2. Nel menu Progetto fare clic su Aggiungi nuovo elemento.On the Project menu, click Add New Item. Selezionare il classi LINQ to SQL modello di elemento.Select the LINQ to SQL Classes item template.

  3. Denominare il file northwind.dbml.Name the file northwind.dbml. Fare clic su Aggiungi.Click Add. Viene aperto il Object Relational Designer (O/R Designer) per il file Northwind. dbml.The Object Relational Designer (O/R Designer) is opened for the northwind.dbml file.

Per aggiungere tabelle a query a O/R DesignerTo add tables to query to the O/R Designer

  1. Nelle Esplora Server/Esplora Database, espandere la connessione al database Northwind.In Server Explorer/Database Explorer, expand the connection to the Northwind database. Espandere la tabelle cartella.Expand the Tables folder.

    Se è stato chiuso O/R Designer, è possibile riaprirlo facendo doppio clic sul file Northwind. dbml aggiunti in precedenza.If you have closed the O/R Designer, you can reopen it by double-clicking the northwind.dbml file that you added earlier.

  2. Fare clic nella tabella Customers e trascinarla nel riquadro sinistro della finestra di progettazione.Click the Customers table and drag it to the left pane of the designer. Fare clic nella tabella Orders e trascinarla nel riquadro sinistro della finestra di progettazione.Click the Orders table and drag it to the left pane of the designer.

    La finestra di progettazione crea nuovi Customer e Order oggetti per il progetto.The designer creates new Customer and Order objects for your project. Si noti che la finestra di progettazione automaticamente rileva le relazioni tra le tabelle e crea figlio le proprietà per gli oggetti correlati.Notice that the designer automatically detects relationships between the tables and creates child properties for related objects. Ad esempio, IntelliSense mostrerà che il Customer oggetto ha un Orders proprietà per tutti gli ordini correlati a tale cliente.For example, IntelliSense will show that the Customer object has an Orders property for all orders related to that customer.

  3. Salvare le modifiche e chiudere la finestra di progettazione.Save your changes and close the designer.

  4. Salvare il progetto.Save your project.

Per aggiungere il codice per eseguire query sul database e visualizzare i risultatiTo add code to query the database and display the results

  1. Dal casella degli strumenti, trascinare un DataGridView controllo nel Form di Windows predefinito per il progetto, Form1.From the Toolbox, drag a DataGridView control onto the default Windows Form for your project, Form1.

  2. Fare doppio clic su Form1 per aggiungere il codice per il Load eventi del form.Double-click Form1 to add code to the Load event of the form.

  3. Quando si aggiungono tabelle alla finestra di Progettazione relazionale oggetti, la finestra di progettazione aggiunge un DataContext oggetti al progetto.When you added tables to the O/R Designer, the designer added a DataContext object to your project. Questo oggetto contiene il codice che è necessario disporre per accedere a tali tabelle e per accedere ai singoli oggetti e raccolte per ogni tabella.This object contains the code that you must have to access those tables, and to access individual objects and collections for each table. Il DataContext oggetto per il progetto viene denominato in base al nome del file. dbml.The DataContext object for your project is named based on the name of your .dbml file. Per questo progetto, il DataContext oggetto è denominato northwindDataContext.For this project, the DataContext object is named northwindDataContext.

    È possibile creare un'istanza di DataContext nel codice e query nelle tabelle specificate dalla finestra di Progettazione relazionale oggetti.You can create an instance of the DataContext in your code and query the tables specified by the O/R Designer.

    Aggiungere il codice seguente per il Load eventi per le tabelle che vengono esposte come proprietà del contesto dati e ordinare i risultati di query.Add the following code to the Load event to query the tables that are exposed as properties of your data context and sort the results. La query ordina i risultati in base al numero di ordini dei clienti, in ordine decrescente.The query sorts the results by the number of customer orders, in descending order. I clienti che hanno lo stesso numero di ordini vengono ordinati in base al nome di società in modo crescente (impostazione predefinita).Customers that have the same number of orders are ordered by company name in ascending order (the default).

    Dim db As New northwindDataContext
    
    Dim q = From cust In db.Customers
            Where cust.Orders.Count > 0
            Select cust.CustomerID, cust.CompanyName,
                   OrderCount = cust.Orders.Count, cust.Country
            Order By OrderCount Descending, CompanyName
    
    DataGridView1.DataSource = q
    
  4. Premere F5 per eseguire il progetto e visualizzare i risultati.Press F5 to run your project and view the results.

Vedere ancheSee also