Share via


Procedura: eseguire una stored procedure che non restituisce valori

Aggiornamento: novembre 2007

Per eseguire una stored procedure che non restituisca alcun valore, è possibile utilizzare una query TableAdapter configurata in modo da eseguire una stored procedure, come ad esempio CustomersTableAdapter.UpdateTableData(CustomersDataTable).

Se nell'applicazione non vengono utilizzati TableAdapter, chiamare il metodo ExecuteNonQuery 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. Nel caso in cui, ad esempio, l'applicazione utilizzi il Provider di dati .NET Framework per SQL Server, l'oggetto comando sarebbe SqlCommand.

Negli esempi che seguono viene illustrato come eseguire stored procedure che non restituiscono valori 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 non corrispondere a quelli descritti nella Guida in linea in quanto dipendono dall'edizione o dalle impostazioni 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 non restituiscono valori utilizzando un TableAdapter

In questo esempio viene illustrato come creare una query TableAdapter mediante la Configurazione guidata query TableAdapter e vengono fornite informazioni sulle modalità di dichiarazione di un'istanza di TableAdapter e di esecuzione della query.

Per creare una stored procedure che non restituisce valori utilizzando un TableAdapter

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

  2. Creare un TableAdapter, se non ne è già disponibile uno. Per ulteriori informazioni sulla creazione di TableAdapter, vedere Procedura: creare oggetti TableAdapter.

  3. Se esiste già una query su un determinato TableAdapter che utilizza una stored procedure che non restituisce valori, passare direttamente alla procedura successiva "Per dichiarare un'istanza del TableAdapter ed eseguire la query". In caso contrario, continuare con il passaggio 4 per creare una nuova query che non restituisce valori.

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

    Verrà aperta la Configurazione guidata query TableAdapter.

  5. Selezionare Utilizza stored procedure esistente, quindi scegliere Avanti.

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

  7. Selezionare l'opzione Nessun valore, quindi scegliere Avanti.

  8. Fornire un nome per la query.

  9. Scegliere Avanti o Fine per 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:

      In realtà 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. Per un dataset denominato SalesDataSet, ad esempio, esiste uno spazio dei nomi SalesDataSetTableAdapters che contiene i rispettivi TableAdapter.

  2. Chiamare la query procedendo come per qualsiasi altro metodo nel codice. La query è un metodo del TableAdapter. Sostituire il codice riportato di seguito con i nomi del TableAdapter e della query. Sarà inoltre necessario passare i parametri 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 dei seguenti esempi:

    TableAdapter.Query()

    TableAdapter.Query(Parameters)

    Il codice completo per la dichiarazione di un'istanza del TableAdapter e l'esecuzione della query dovrebbe risultare simile al seguente:

    Dim tableAdapter As New NorthwindDataSetTableAdapters.CustomersTableAdapter()
    
    Dim rowsAffected As Integer
    rowsAffected = CType(tableAdapter.UpdateContactTitle("Sales Manager", "ALFKI"), Integer)
    
    NorthwindDataSetTableAdapters.CustomersTableAdapter tableAdapter = 
        new NorthwindDataSetTableAdapters.CustomersTableAdapter();
    
    int rowsAffected = tableAdapter.UpdateContactTitle("Sales Manager", "ALFKI");
    

Esecuzione di stored procedure che non restituiscono valori utilizzando un oggetto comando

Nell'esempio che segue viene illustrato come creare un comando ed eseguire una stored procedure che non restituisce valori. Per informazioni sull'impostazione e il recupero di valori di 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:

Per eseguire una stored procedure che non restituisce valori utilizzando un DataCommand

  • Aggiungere il codice che segue a un metodo dal quale si desidera eseguire la stored procedure. Chiamare il metodo ExecuteNonQuery di un comando per non restituire valori, ad esempio ExecuteNonQuery.

    Dim sqlConnection1 As New SqlConnection("Your Connection String")
    Dim cmd As New SqlCommand
    Dim rowsAffected As Integer
    
    cmd.CommandText = "StoredProcedureName"
    cmd.CommandType = CommandType.StoredProcedure
    cmd.Connection = sqlConnection1
    
    sqlConnection1.Open()
    
    rowsAffected = cmd.ExecuteNonQuery()
    
    sqlConnection1.Close()
    
    SqlConnection sqlConnection1 = new SqlConnection("Your Connection String");
    SqlCommand cmd = new SqlCommand();
    Int32 rowsAffected;
    
    cmd.CommandText = "StoredProcedureName";
    cmd.CommandType = CommandType.StoredProcedure;
    cmd.Connection = sqlConnection1;
    
    sqlConnection1.Open();
    
    rowsAffected = cmd.ExecuteNonQuery();
    
    sqlConnection1.Close();
    

Sicurezza

Per accedere al database ed eseguire l'istruzione SQL è richiesta l'autorizzazione.

Vedere anche

Attività

Procedura: creare query TableAdapter

Procedura: modificare 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.ExecuteNonQuery

OleDbCommand.ExecuteNonQuery

OdbcCommand.ExecuteNonQuery

OracleCommand.ExecuteNonQuery