Inserimento di dati nei dataset

Il meccanismo utilizzato generalmente in Visual Studio per l'esecuzione di query Transact-SQL e per la compilazione dei dataset è il TableAdapter.

È possibile eseguire istruzioni SQL o stored procedure in un'origine dati utilizzando oggetti TableAdapter o oggetti di comando, ad esempio SqlCommand. Per caricare i dati in dataset creati mediante gli strumenti di progettazione di Visual Studio, utilizzare i TableAdapter. Per caricare i dati in dataset creati a livello di codice, si utilizzano gli adattatori dati. Se nell'applicazione non vengono utilizzati i dataset, usare gli oggetti comando per eseguire le istruzioni SQL o le stored procedure direttamente in un database.

Negli argomenti seguenti vengono forniti i dettagli per inserire dati nei dataset in Visual Studio:

Argomento

Descrizione

Procedura: riempire un dataset

Vengono fornite informazioni dettagliate sul caricamento dei dati nei dataset mediante TableAdapter e DataAdapter.

Procedura: creare ed eseguire un'istruzione SQL che restituisce righe

Vengono illustrate in dettaglio la creazione e l'esecuzione di istruzioni SQL che restituiscono righe mediante query TableAdapter e oggetti comando.

Procedura: creare ed eseguire un'istruzione SQL che restituisce un valore

Vengono fornite informazioni dettagliate sulla creazione e l'esecuzione di istruzioni SQL che restituiscono valori singoli mediante query TableAdapter e oggetti comando.

Procedura: creare ed eseguire un'istruzione SQL che non restituisce valori

Vengono fornite informazioni dettagliate sulla creazione e l'esecuzione di istruzioni SQL che non restituiscono alcun valore mediante query TableAdapter e oggetti comando.

Procedura: eseguire una stored procedure che restituisce righe

Viene illustrata in dettaglio l'esecuzione di stored procedure che restituiscono righe mediante query TableAdapter e oggetti comando.

Procedura: eseguire una stored procedure che restituisce un valore singolo

Viene illustrata in dettaglio l'esecuzione di stored procedure che restituiscono singoli valori mediante query TableAdapter e oggetti comando.

Procedura: eseguire una stored procedure che non restituisce valori

Vengono fornite informazioni dettagliate sull'esecuzione di stored procedure che non restituiscono valori mediante query TableAdapter e oggetti comando.

Procedura: ottenere e impostare parametri per oggetti comando

Vengono forniti dettagli sull'assegnazione di valori ai parametri di query e stored procedure e sulla lettura dei valori dei parametri restituiti dai comandi eseguiti.

Procedura dettagliata: riempimento di un dataset

Vengono fornite istruzioni dettagliate per la creazione di un dataset e il suo popolamento con i dati di un database.

Procedura dettagliata: lettura dei dati XML in un dataset

Vengono fornite informazioni dettagliate sulla creazione di un'applicazione Windows che consenta il caricamento dei dati XML in un dataset e la successiva visualizzazione del dataset in un controllo DataGridView.

Riempimento di dataset

Se si crea un dataset con uno strumento di progettazione di Visual Studio, come Progettazione DataSet o la Configurazione guidata origine dati, utilizzare un TableAdapter per compilarlo. I TableAdapter consentono di eseguire le istruzioni SQL o le stored procedure.

Se si crea un dataset senza gli strumenti di progettazione, è necessario utilizzare gli adattatori dati per riempire e aggiornare i dati. Gli oggetti TableAdapter non sono classi vere e proprie in .NET Framework 4.5, di conseguenza non sono idonei ad essere utilizzati con dataset creati senza utilizzare strumenti di progettazione. Per ulteriori informazioni sul caricamento dei dati nei dataset utilizzando TableAdapter o adattatori dati, vedere Procedura: riempire un dataset.

Query TableAdapter

È possibile eseguire query TableAdapter per riempire di dati i dataset e, in maniera più specifica, per caricare i dati nelle DataTable che costituiscono un dataset. È possibile creare query TableAdapter utilizzando la TableAdapter (query, configurazione guidata) in Progettazione DataSet. Le query TableAdapter vengono visualizzate come metodi denominati su un TableAdapter e vengono eseguite chiamando il metodo TableAdapter. Per ulteriori informazioni sulla creazione e l'esecuzione di query TableAdapter, vedere le pagine seguenti:

Oggetti comando

Gli oggetti comando consentono di eseguire istruzioni SQL e stored procedure direttamente in un database, senza ricorrere a DataSet, TableAdapter o DataAdapter. Il termine oggetto comando si riferisce al comando specifico per il 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.

È possibile configurare i comandi per eseguire query sui dati mediante istruzioni SQL o stored procedure impostando la proprietà CommandType del comando dati su uno dei valori dell'enumerazione CommandType. Impostare CommandType su Text per l'esecuzione di istruzioni SQL oppure impostarlo su StoredProcedure per l'esecuzione di stored procedure. Successivamente, impostare la proprietà CommandText su un'istruzione SQL o sul nome della stored procedure. Per eseguire il comando dati, effettuare quindi la chiamata a uno dei relativi metodi Execute (ExecuteReader, ExecuteScalar, ExecuteNonQuery).

Ciascuno dei Provider di dati .NET Framework offre un oggetto comando ottimizzato per database specifici.

I comandi dati consentono di effettuare le seguenti operazioni nell'applicazione:

  • Esecuzione di comandi Select che restituiscono un risultato leggibile dall'utente in modo diretto, senza doverlo caricare nel dataset. Per leggere i risultati è possibile ricorrere a un lettore dati (oggetto OleDbDataReader, SqlDataReader, OdbcDataReader o OracleDataReader), il cui funzionamento è analogo a quello di un cursore di tipo forward only di sola lettura al quale possono essere associati i controlli. Si tratta di un'efficace strategia per contenere l'utilizzo di memoria e caricare in modo rapido dati in sola lettura.

  • Esecuzione di comandi DDL per creare, modificare e rimuovere tabelle, stored procedure e altre strutture del database. Per eseguire queste operazioni è tuttavia necessario disporre delle autorizzazioni appropriate.

  • Esecuzione di comandi per ottenere le informazioni sul catalogo del database.

  • Esecuzione di comandi SQL dinamici per aggiornare, inserire o eliminare record, anziché aggiornare tabelle dataset e copiare quindi le modifiche nel database.

  • Esecuzione di comandi che restituiscono un valore scalare, ovvero un valore singolo, quali i risultati di una funzione aggregata (SUM, COUNT, AVG e così via).

  • Esecuzione di comandi che restituiscono dati da un database di SQL Server (versione 7.0 o successiva) in formato XML. Un tipico utilizzo di questi comandi consiste nell'eseguire una query e ottenere i dati in formato XML, applicare ai dati una trasformazione XSLT per convertirli in formato HTML, quindi inviare i risultati a un browser.

Nelle proprietà di un comando sono presenti tutte le informazioni necessarie a eseguire un comando in un database, vale a dire:

  • Una connessione   Il comando fa riferimento a una connessione utilizzata per comunicare con il database.

  • Il nome o il testo di un comando   Nel comando è incluso il testo effettivo di un'istruzione SQL o il nome di una stored procedure da eseguire.

  • **I parametri   **Potrebbe essere necessario passare insieme al comando i valori dei relativi parametri (parametri di input). Il comando potrebbe anche restituire valori sotto forma di valore restituito oppure di valori dei parametri di output. In ciascun comando è disponibile una raccolta di parametri che possono essere impostati o letti singolarmente per passare o per ricevere i valori. Per ulteriori informazioni, vedere Procedura: ottenere e impostare parametri per oggetti comando.

Per eseguire un comando è necessario scegliere un metodo in base al risultato che si desidera ottenere. Se, ad esempio, si prevede di ottenere delle righe, sarà necessario chiamare il metodo ExecuteReader del comando che restituisce i record di un lettore dati. Se si esegue un comando UPDATE, INSERT o DELETE, sarà necessario chiamare il metodo ExecuteNonQuery del comando che restituisce un valore che indica il numero di righe interessate. Per eseguire una funzione di aggregazione, ad esempio restituire il conteggio degli ordini di un cliente, viene chiamato il metodo ExecuteScalar.

Più set di risultati

Un utilizzo tipico dell'oggetto comando prevede la restituzione di una tabella di dati (un set di righe). Tuttavia, i comandi possono anche consentire l'esecuzione di routine che restituiscono più set di risultati in svariati modi. Uno dei modi prevede che nel comando venga inserito un riferimento a una stored procedure che restituisce più set di risultati ma, in alternativa, nel comando possono essere presenti due o più istruzioni o stored procedure. In tal caso le istruzioni o le stored procedure verranno eseguite in sequenza e con una singola chiamata verranno restituiti più set di risultati.

Se per un comando si specificano più istruzioni o stored procedure, è necessario che siano tutte dello stesso tipo. È possibile, ad esempio, eseguire istruzioni SQL o stored procedure consecutive mentre non è possibile combinare chiamate a stored procedure e istruzioni SQL nello stesso comando. Per ulteriori informazioni, vedere Recupero di dati mediante un DataReader.

Nota

Per Oracle il provider di dati .NET Framework non supporta le istruzioni SQL in batch.Consente, tuttavia, di utilizzare più parametri di output REF CURSOR per riempire un dataset, ciascuno nella propria tabella dati.È necessario definire i parametri, contrassegnarli come parametri di output e indicare che si tratta di tipi di dati REF CURSOR.Si tenga presente che non sarà possibile utilizzare il metodo Update quando l'oggetto OracleDataAdapter viene riempito con parametri REF CURSOR per una stored procedure, in quanto in Oracle non vengono fornite le informazioni necessarie per determinare quali devono essere il nome della tabella e i nomi delle colonne al momento dell'esecuzione dell'istruzione SQL.

Sicurezza

Quando si utilizzano comandi dati con una proprietà CommandType impostata su Text, controllare attentamente le informazioni inviate da un client prima di passarle al database. Utenti malintenzionati potrebbero tentare di inviare istruzioni SQL modificate o aggiuntive con l'obiettivo di ottenere un accesso non autorizzato o di danneggiare il database. Prima di trasferire l'input di un utente in un database, si consiglia di verificare sempre che le informazioni siano valide. È opportuno utilizzare, quando possibile, query con parametri o stored procedure.

Vedere anche

Concetti

Preparazione dell'applicazione al ricevimento di dati

Recupero di dati nell'applicazione

Associazione di controlli ai dati in Visual Studio

Modifica di dati nell'applicazione

Convalida dei dati

Salvataggio di dati

Altre risorse

Cenni preliminari sulle applicazioni dati in Visual Studio

Connessione ai dati in Visual Studio

Strumenti per l'utilizzo delle origini dati in Visual Studio