Procedura: eseguire una stored procedure che restituisce un valore singolo
Per eseguire una stored procedure che non restituisca un singolo valore, è possibile utilizzare una query TableAdapter configurata in modo da eseguire una stored procedure, come ad esempio CustomersTableAdapter.CustomerCount().
Se nell'applicazione non vengono utilizzati TableAdapter, chiamare il metodo ExecuteScalar su un oggetto comando, impostando la relativa proprietà CommandType su StoredProcedure.Per oggetto comando si intende il comando specifico del Provider di dati .NET Framework utilizzato dall'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 singoli valori da un database utilizzando TableAdapter oppure oggetti comando.Per ulteriori informazioni sull'esecuzione di query con TableAdapter e comandi, vedere Inserimento di dati nei dataset.
[!NOTA]
Nel computer in uso è possibile che vengano visualizzati nomi o percorsi diversi per alcuni elementi dell'interfaccia utente di Visual Studio nelle istruzioni seguenti. La versione di Visual Studio in uso e le impostazioni configurate determinano questi elementi. Per ulteriori informazioni vedere Impostazioni di Visual Studio.
Esecuzione di stored procedure che restituiscono singoli valori utilizzando un TableAdapter
Nell'esempio che segue viene illustrato come creare una query TableAdapter utilizzando la TableAdapter (query, configurazione guidata), quindi vengono fornite informazioni su come dichiarare un'istanza di TableAdapter ed eseguire la query.
Per eseguire una stored procedure che restituisce un valore singolo utilizzando un TableAdapter
Aprire un dataset in Progettazione DataSet.Per ulteriori informazioni, vedere Procedura: aprire un dataset in Progettazione DataSet.
Se non è già disponibile un TableAdapter, crearne uno.Per ulteriori informazioni sulla creazione di TableAdapter, vedere Procedura: creare oggetti TableAdapter.
Se esiste già una query su un determinato TableAdapter che utilizza una stored procedure per la restituzione di un singolo valore, passare direttamente alla procedura successiva "Per dichiarare un'istanza del TableAdapter ed eseguire la query". In caso contrario, procedere con il passaggio 4 per creare una nuova query che restituisca un valore.
Fare clic con il pulsante destro del mouse sull'oggetto TableAdapter desiderato e aggiungere una query mediante il menu di scelta rapida.
Viene aperta la Configurazione guidata query TableAdapter.
Selezionare Utilizza stored procedure esistente, quindi scegliere Avanti.
Selezionare una stored procedure dall'elenco a discesa, quindi scegliere Avanti.
Scegliere l'opzione Un valore, quindi scegliere Avanti.
Immettere un nome per la query.
Scegliere Avanti o Fine per completare la procedura guidata. La query verrà aggiunta all'oggetto TableAdapter.
Compilazione del progetto.
Per dichiarare un'istanza del TableAdapter ed eseguire la query
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.
In alternativa
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 una raccolta 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.
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à anche 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 degli esempi riportati di seguito.
TableAdapter.Query()
TableAdapter.Query(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() Dim returnValue As Integer returnValue = CType(tableAdapter.GetCustomerCount(), Integer)
NorthwindDataSetTableAdapters.CustomersTableAdapter tableAdapter = new NorthwindDataSetTableAdapters.CustomersTableAdapter(); int returnValue = (int)tableAdapter.GetCustomerCount();
Esecuzione di stored procedure che restituiscono singoli valori utilizzando un oggetto comando
Nell'esempio che segue viene illustrato come creare un comando ed eseguire una stored procedure che restituisce singoli valori.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 è collegato SqlConnection1.Altrimenti, specificare un'istruzione SQL valida per l'origine dati.
Per eseguire una stored procedure che restituisce un valore utilizzando un DataCommand
Aggiungere il codice che segue al metodo da cui eseguirlo.Per restituire singoli valori chiamare il metodo ExecuteScalar di un comando, ad esempio ExecuteScalar.I dati vengono restituiti in un object.
Dim sqlConnection1 As New SqlConnection("Your Connection String") Dim cmd As New SqlCommand Dim returnValue As Object cmd.CommandText = "StoredProcedureName" cmd.CommandType = CommandType.StoredProcedure cmd.Connection = sqlConnection1 sqlConnection1.Open() returnValue = cmd.ExecuteScalar() sqlConnection1.Close()
SqlConnection sqlConnection1 = new SqlConnection("Your Connection String"); SqlCommand cmd = new SqlCommand(); Object returnValue; cmd.CommandText = "StoredProcedureName"; cmd.CommandType = CommandType. StoredProcedure; cmd.Connection = sqlConnection1; sqlConnection1.Open(); returnValue = cmd.ExecuteScalar(); sqlConnection1.Close();
Vedere anche
Attività
Procedura: creare query TableAdapter
Procedura: modificare query TableAdapter
Procedura: riempire un dataset
Procedura: ottenere e impostare parametri per oggetti comando