Creare e configurare tableAdapter nelle applicazioni .NET Framework

Nota

I set di dati e le classi correlate sono tecnologie .NET Framework legacy dei primi anni '2000 che consentono alle applicazioni di lavorare con i dati in memoria mentre le applicazioni vengono disconnesse dal database. Sono particolarmente utili per le applicazioni che consentono agli utenti di modificare i dati e rendere persistenti le modifiche apportate al database. Anche se i set di dati hanno dimostrato di essere una tecnologia molto efficace, è consigliabile che le nuove applicazioni .NET usino Entity Framework Core. Entity Framework offre un modo più naturale per usare i dati tabulari come modelli a oggetti e ha un'interfaccia di programmazione più semplice.

Gli oggetti TableAdapter forniscono la comunicazione tra l'applicazione e un database. Si connettono al database, eseguono query o stored procedure e restituiscono una nuova tabella dati o riempiono un oggetto esistente DataTable con i dati restituiti. Gli oggetti TableAdapter possono anche inviare dati aggiornati dall'applicazione al database.

I tableAdapter vengono creati automaticamente quando si esegue una delle azioni seguenti:

  • Trascinare oggetti di database da Esplora server in Progettazione set di dati.

  • Eseguire la Configurazione guidata origine dati e selezionare il tipo di origine dati Database o Servizio Web.

    Configurazione guidata origine dati in Visual Studio

È anche possibile creare un nuovo TableAdapter e configurarlo con un'origine dati trascinando un oggetto TableAdapter dalla casella degli strumenti a un'area vuota nell'area Progettazione set di dati .

Per un'introduzione a TableAdapters, vedere Fill datasets by using TableAdapters (Compilare set di dati usando TableAdapters).

Nota

I nomi o i percorsi visualizzati per alcuni elementi dell'interfaccia utente di Visual Studio in questo articolo potrebbero essere diversi nel computer in uso. È possibile usare un'edizione diversa di Visual Studio o impostazioni di ambiente diverse. Per altre informazioni, vedere Personalizzare l'IDE.

Usare la Configurazione guidata TableAdapter

Eseguire la Configurazione guidata TableAdapter per creare o modificare TableAdapter e le tabelle DataTable associate. È possibile configurare un TableAdapter esistente facendo clic con il pulsante destro del mouse su di esso in Progettazione set di dati.

Screenshot che mostra la Configurazione guidata adapter tabella.

Se si trascina un nuovo TableAdapter dalla casella degli strumenti quando progettazione set di dati è attivo, la procedura guidata avvia e chiede di specificare l'origine dati a cui deve connettersi TableAdapter. Nella pagina successiva la procedura guidata chiede quale tipo di comandi usare per comunicare con il database, ovvero istruzioni SQL o stored procedure. Questa schermata non viene visualizzata se si configura un TableAdapter già associato a un'origine dati.

  • Se si dispone delle autorizzazioni corrette per il database, è possibile creare una nuova stored procedure nel database sottostante. Se queste autorizzazioni non sono disponibili, questa opzione non è disponibile.

  • È anche possibile scegliere di eseguire stored procedure esistenti per i comandi edizione Standard LECT, IN edizione Standard RT, UPDATE e DELETE di TableAdapter. La stored procedure assegnata al comando Update , ad esempio, viene eseguita quando viene chiamato il TableAdapter.Update() metodo .

Mappare i parametri dalla stored procedure selezionata alle colonne corrispondenti nella tabella dati. Ad esempio, se la stored procedure accetta un parametro denominato @CompanyName che passa alla CompanyName colonna nella tabella, impostare la colonna di origine del @CompanyName parametro su CompanyName.

Nota

La stored procedure assegnata al SELECT comando viene eseguita chiamando il metodo dell'oggetto TableAdapter assegnato nel passaggio successivo della procedura guidata. Il metodo predefinito è Fill, quindi il codice usato in genere per eseguire la SELECT routine è TableAdapter.Fill(tableName). Se si modifica il nome predefinito da Fill, sostituire Fill con il nome assegnato e sostituire "TableAdapter" con il nome effettivo di TableAdapter (ad esempio, CustomersTableAdapter).

  • La selezione dei metodi Create per inviare gli aggiornamenti direttamente all'opzione di database equivale all'impostazione della GenerateDBDirectMethods proprietà su true. L'opzione non è disponibile quando l'istruzione SQL originale non fornisce informazioni sufficienti o la query non è una query aggiornabile. Questa situazione può verificarsi, ad esempio, nelle query JOIN e nelle query che restituiscono un singolo valore (scalare).

Le opzioni avanzate della procedura guidata consentono di:

  • Generare INSERTistruzioni , UPDATEe DELETE in base all'istruzione SELECT definita nella pagina Genera istruzioni SQL
  • Usa concorrenza ottimistica
  • Specificare se aggiornare la tabella dati dopo INSERT l'esecuzione delle istruzioni e UPDATE

Configurare un metodo Fill di TableAdapter

In alcuni casi potrebbe essere necessario modificare lo schema della tabella di TableAdapter. A tale scopo, modificare il metodo primario Fill di TableAdapter. Gli oggetti TableAdapter vengono creati con un metodo primario Fill che definisce lo schema della tabella dati associata. Il metodo primario Fill si basa sulla query o sulla stored procedure immessa quando è stato originariamente configurato TableAdapter. Si tratta del primo metodo (in primo piano) nella tabella dati in Progettazione DataSet.

TableAdapter con più query

Tutte le modifiche apportate al metodo main Fill di TableAdapter vengono riflesse nello schema della tabella dati associata. Ad esempio, la rimozione di una colonna dalla query nel metodo main Fill rimuove anche la colonna dalla tabella dati associata. Inoltre, rimuovendo la colonna dal metodo main Fill , la colonna viene rimossa da eventuali query aggiuntive per l'oggetto TableAdapter.

È possibile usare la Configurazione guidata query TableAdapter per creare e modificare query aggiuntive per TableAdapter. Queste query aggiuntive devono essere conformi allo schema della tabella, a meno che non restituiscano un valore scalare. Ogni query aggiuntiva ha un nome specificato.

L'esempio seguente illustra come chiamare una query aggiuntiva denominata FillByCity:

CustomersTableAdapter.FillByCity(NorthwindDataSet.Customers, "Seattle")

Per avviare la Configurazione guidata query TableAdapter con una nuova query

  1. Aprire il set di dati in Progettazione DataSet.

  2. Se si crea una nuova query, trascinare un oggetto Query dalla scheda DataSet della casella degli strumenti in un DataTableoggetto oppure selezionare Aggiungi query dal menu di scelta rapida di TableAdapter. È anche possibile trascinare un oggetto Query in un'area vuota di Progettazione set di dati, che crea un Oggetto TableAdapter senza un oggetto associatoDataTable. Queste query possono restituire solo valori singoli (scalari) oppure eseguire UPDATEcomandi , INSERTo DELETE sul database.

  3. Nella schermata Scegli dati Connessione ion selezionare o creare la connessione che verrà usata dalla query.

    Nota

    Questa schermata viene visualizzata solo quando la finestra di progettazione non riesce a determinare la connessione appropriata da usare o quando non sono disponibili connessioni.

  4. Nella schermata Choose a Command Type (Scegli un tipo di comando) selezionare uno dei metodi seguenti per recuperare i dati dal database:

    • Usare istruzioni SQL consente di digitare un'istruzione SQL per selezionare i dati dal database.

    • La creazione di una nuova stored procedure consente di creare una nuova stored procedure (nel database) in base all'istruzione specificata SELECT .

    • L'utilizzo di stored procedure esistenti consente di eseguire una stored procedure esistente durante l'esecuzione della query.

Per avviare la Configurazione guidata query TableAdapter in una query esistente

  • Se si modifica una query TableAdapter esistente, fare clic con il pulsante destro del mouse sulla query e scegliere Configura dal menu di scelta rapida.

    Nota

    Fare clic con il pulsante destro del mouse sulla query principale di un tableAdapter riconfigura tableadapter e DataTable schema. Facendo clic con il pulsante destro del mouse su una query aggiuntiva in un oggetto TableAdapter, tuttavia, viene configurata solo la query selezionata. La Configurazione guidata TableAdapter riconfigura la definizione TableAdapter, mentre la Configurazione guidata query TableAdapter riconfigura solo la query selezionata.

Per aggiungere una query globale a un oggetto TableAdapter

  • Le query globali sono query SQL che restituiscono un singolo valore (scalare) o nessun valore. In genere, le funzioni globali eseguono operazioni di database, ad esempio inserimenti, aggiornamenti ed eliminazioni. Aggregano anche informazioni, ad esempio un conteggio dei clienti in una tabella o gli addebiti totali per tutti gli articoli in un determinato ordine.

    Per aggiungere query globali, trascinare un oggetto Query dalla scheda DataSet della casella degli strumenti in un'area vuota di Progettazione set di dati.

  • Specificare una query che esegue l'attività desiderata, SELECT COUNT(*) AS CustomerCount FROM Customersad esempio .

    Nota

    Il trascinamento di un oggetto Query direttamente in Progettazione set di dati crea un metodo che restituisce solo un valore scalare (singolo). Mentre la query o la stored procedure selezionata potrebbe restituire più di un singolo valore, il metodo creato dalla procedura guidata restituisce solo un singolo valore. Ad esempio, la query potrebbe restituire la prima colonna della prima riga dei dati restituiti.