Procedura: chiamare una stored procedure utilizzando LINQ (Visual Basic)

Con LINQ (Language Integrated Query) è possibile accedere più facilmente alle informazioni sul database, inclusi gli oggetti di database come le stored procedure.

Nell'esempio seguente viene illustrato come creare un'applicazione che chiama una stored procedure in un database di SQL Server. L'esempio mostra come chiamare due stored procedure diverse nel database. Ogni stored procedure restituisce i risultati di una query. Una stored procedure accetta parametri di input, mentre l'altra stored procedure non accetta parametri.

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

  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 fare clic 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 scegliere Nuovo dal menu File e quindi fare clic su Progetto. Selezionare Windows Forms Application di Visual Basic come tipo di progetto.

  2. Dal 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 Object Relational Designer per il file northwind.dbml.

Per aggiungere stored procedure in Object Relational Designer

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

    Se Object Relational Designer è stato chiuso, è possibile riaprirlo facendo doppio clic sul file northwind.dbml aggiunto in precedenza.

  2. Fare clic sulla stored procedure Sales by Year e trascinarla nel riquadro destro della finestra di progettazione. Fare clic sulla stored procedure Ten Most Expensive Products e trascinarla nel riquadro destro della finestra di progettazione.

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

  4. Salvare il progetto.

Per aggiungere il codice per visualizzare i risultati delle stored procedure

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

  2. Fare doppio clic su Form1 per aggiungere il codice al relativo evento Load.

  3. Quando sono state aggiunte le stored procedure 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 stored procedure. 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 e chiamare i metodi della stored procedure specificati da Object Relational Designer. Per eseguire l'associazione all'oggetto DataGridView, potrebbe essere necessario forzare l'esecuzione immediata della query chiamando il metodo ToList sui risultati della stored procedure.

    Aggiungere il codice seguente all'evento Load per chiamare una delle stored procedure esposte come metodi per il contesto dei dati.

    Dim db As New northwindDataContext
    
    ' Display the results of the Sales_by_Year stored procedure.
    DataGridView1.DataSource =
        db.Sales_by_Year(#1/1/1996#, #1/1/2007#).ToList()
    
    ' Display the results of the Ten_Most_Expensive_Products
    ' stored procedure.
    
    DataGridView1.DataSource =
        db.Ten_Most_Expensive_Products.ToList()
    
  4. Premere F5 per eseguire il progetto e visualizzare i risultati.

Vedi anche