Share via


Procedura: eseguire una stored procedure che restituisce righe

Aggiornamento: novembre 2007

Per eseguire una stored procedure che restituisca delle righe, è possibile utilizzare una query TableAdapter configurata in modo da eseguire una stored procedure, come ad esempio CustomersTableAdapter.Fill(CustomersDataTable).

Se nell'applicazione non vengono utilizzati TableAdapter, chiamare il metodo ExecuteReader su un oggetto comando, impostandone la proprietà CommandType su StoredProcedure. Per oggetto comando si intende il comando specifico del Provider di dati .NET Framework utilizzato nell'applicazione. Se, ad esempio, è in uso il Provider di dati .NET Framework per SQL Server, l'oggetto comando sarà SqlCommand.

Negli esempi che seguono viene illustrato come eseguire stored procedure che restituiscono righe da un database utilizzando TableAdapter oppure oggetti comando. Per ulteriori informazioni sull'esecuzione di query con TableAdapter e comandi, vedere Cenni preliminari sul riempimento dei dataset e l'esecuzione di query sui dati.

Nota:

Le finestre di dialogo e i comandi di menu visualizzati potrebbero variare rispetto a quanto descritto nella Guida in linea in base alle impostazioni o all'edizione in uso. Per modificare le impostazioni, scegliere Importa/Esporta impostazioni dal menu Strumenti. Per ulteriori informazioni, vedere Impostazioni di Visual Studio.

Esecuzione di stored procedure che restituiscono righe utilizzando un TableAdapter

Nell'esempio che segue viene illustrato come creare una query TableAdapter utilizzando la Configurazione guidata query TableAdapter, quindi vengono fornite informazioni su come dichiarare un'istanza di TableAdapter ed eseguire la query.

Per creare una stored procedure che restituisce righe utilizzando un TableAdapter

  1. Aprire un dataset in Progettazione DataSet. Per ulteriori informazioni, vedere Procedura: aprire un dataset in Progettazione DataSet.

  2. Se non è già disponibile un TableAdapter, crearne uno. Per ulteriori informazioni, vedere Procedura: creare oggetti TableAdapter.

  3. Se esiste già una query su un determinato TableAdapter che chiama una stored procedure per la restituzione di righe, passare direttamente alla procedura successiva "Per dichiarare un'istanza del TableAdapter ed eseguire la query". Altrimenti, procedere con il passaggio 4 per creare una nuova query che chiami una stored procedure che restituisce righe.

  4. Fare clic con il pulsante destro del mouse sull'oggetto TableAdapter prescelto e utilizzare il menu di scelta rapida per aggiungere una query.

    Verrà visualizzata la Configurazione guidata query TableAdapter.

  5. Scegliere Avanti, quindi scegliere Utilizza stored procedure esistente e di nuovo Avanti.

  6. Selezionare una stored procedure dall'elenco a discesa, quindi scegliere Avanti.

  7. Lasciare il valore predefinito Dati tabulari, quindi scegliere Avanti.

  8. Specificare i nomi dei metodi da creare (Riempi una DataTable e/o Restituisci una DataTable).

  9. Completare la procedura guidata. La query verrà aggiunta al TableAdapter.

  10. Compilazione del progetto.

Per dichiarare un'istanza del TableAdapter ed eseguire la query

  1. Dichiarare un'istanza del TableAdapter che contiene la query da eseguire.

    • Per creare un'istanza con gli strumenti di progettazione, trascinare il TableAdapter prescelto dalla Casella degli strumenti. I componenti del progetto sono ora visualizzati nella Casella degli strumenti sotto a un'intestazione che corrisponde al nome del progetto. Se nella Casella degli strumenti non viene visualizzato il TableAdapter, potrebbe essere necessario compilare il progetto.

      -oppure-

    • Per creare un'istanza nel codice, sostituire il codice riportato di seguito con i nomi della classe DataSet e del TableAdapter.

      Dim tableAdapter As New DataSetTableAdapters.TableAdapter

      Nota:

      I TableAdapter non si trovano all'interno delle classi di dataset associate. Per ogni dataset esiste un insieme corrispondente di TableAdapter nel relativo spazio dei nomi. Se, ad esempio, esiste un dataset denominato SalesDataSet, sarà presente uno spazio dei nomi SalesDataSetTableAdapters contenente i relativi TableAdapter.

  2. Chiamare la query procedendo come per qualsiasi altro metodo nel codice. La query è un metodo eseguito sull'oggetto TableAdapter. Sostituire il codice che segue con i nomi del TableAdapter e della query. Sarà necessario inoltre passare i parametri eventualmente richiesti dalla query. In caso di dubbi sulla necessità di parametri per la query o sul tipo di parametri richiesti, verificare che in IntelliSense sia presente la firma richiesta della query. A seconda che la query accetti o meno parametri, il codice risulterà simile a uno degli esempi riportati di seguito.

    TableAdapter.Query()

    TableAdapter.Query(Parameters)

    TableAdapter.Query(DataTable, Parameters)

    Il codice completo necessario per dichiarare un'istanza del TableAdapter ed eseguire la query risulterà simile al seguente:

    Dim tableAdapter As New NorthwindDataSetTableAdapters.CustomersTableAdapter()
    tableAdapter.FillByCity(NorthwindDataSet.Customers, "Seattle")
    
    NorthwindDataSetTableAdapters.CustomersTableAdapter tableAdapter = 
        new NorthwindDataSetTableAdapters.CustomersTableAdapter();
    
    tableAdapter.FillByCity(northwindDataSet.Customers, "Seattle");
    

Esecuzione di stored procedure che restituiscono righe utilizzando un oggetto comando

Nell'esempio che segue viene illustrato come creare un comando ed eseguire una stored procedure che restituisce righe. Per informazioni sull'impostazione e il recupero dei valori dei parametri per un comando, vedere Procedura: ottenere e impostare parametri per oggetti comando.

Nell'esempio che segue viene utilizzato l'oggetto SqlCommand e devono essere soddisfatti i seguenti requisiti:

  • Riferimenti agli spazi dei nomi System, System.Data e System.Xml.

  • Una connessione dati denominata SqlConnection1.

  • Una tabella denominata Customers nell'origine dati cui è connessa SqlConnection1. Altrimenti, specificare un'istruzione SQL valida per l'origine dati.

Per eseguire una stored procedure che restituisce righe a livello di codice utilizzando un oggetto comando

  • Aggiungere il codice che segue al metodo da cui eseguirlo. Per la restituzione delle righe è possibile chiamare il metodo ExecuteReader del comando, ad esempio ExecuteReader. I dati vengono restituiti in un DataReader. Per ulteriori informazioni sull'accesso ai dati in un oggetto DataReader, vedere Recupero di dati mediante un DataReader (ADO.NET).

    Dim sqlConnection1 As New SqlConnection("Your Connection String")
    Dim cmd As New SqlCommand
    Dim reader As SqlDataReader
    
    cmd.CommandText = "StoredProcedureName"
    cmd.CommandType = CommandType.StoredProcedure
    cmd.Connection = sqlConnection1
    
    sqlConnection1.Open()
    
    reader = cmd.ExecuteReader()
    ' Data is accessible through the DataReader object here.
    
    sqlConnection1.Close()
    
    SqlConnection sqlConnection1 = new SqlConnection("Your Connection String");
    SqlCommand cmd = new SqlCommand();
    SqlDataReader reader;
    
    cmd.CommandText = "StoredProcedureName";
    cmd.CommandType = CommandType.StoredProcedure;
    cmd.Connection = sqlConnection1;
    
    sqlConnection1.Open();
    
    reader = cmd.ExecuteReader();
    // Data is accessible through the DataReader object here.
    
    sqlConnection1.Close();
    

Sicurezza

È richiesta l'autorizzazione per l'accesso al database e l'esecuzione della stored procedure.

Vedere anche

Attività

Procedura: creare query TableAdapter

Procedura: riempire un dataset

Procedura: ottenere e impostare parametri per oggetti comando

Concetti

Cenni preliminari sul riempimento dei dataset e l'esecuzione di query sui dati

Riferimenti

SqlCommand.ExecuteReader

OleDbCommand.ExecuteReader

OdbcCommand.ExecuteReader

OracleCommand.ExecuteReader