Cenni preliminari sulla connessione ai dati in Visual Studio
Aggiornamento: novembre 2007
In Visual Studio vengono forniti strumenti per la connessione dell'applicazione ai dati provenienti da diverse origini, ad esempio database, servizi Web e oggetti. Se si utilizzano strumenti di progettazione dati in Visual Studio, spesso non è necessario creare esplicitamente un oggetto connessione per il form o il componente utilizzato. L'oggetto connessione viene generalmente creato in seguito al completamento di una delle procedure guidate relative ai dati oppure mediante il trascinamento degli oggetti dati nel form. Per connettere l'applicazione ai dati di un database, di un servizio Web o di un oggetto, eseguire la Configurazione guidata origine dati selezionando Aggiungi nuova origine dati nella Finestra Origini dati.
Nel diagramma seguente viene mostrato il flusso standard delle operazioni eseguite quando si effettua la connessione ai dati eseguendo una query TableAdapter per recuperare i dati e visualizzarli in un form di un'applicazione Windows.
In alcune situazioni potrebbe risultare più pratico creare un oggetto connessione senza servirsi degli strumenti di progettazione dati. Per informazioni sulla creazione di connessioni a livello di codice, vedere Connessione a un'origine dati (ADO.NET).
Nota: |
---|
Per informazioni sulla connessione di applicazioni Web ai dati, vedere Accesso ai dati tramite ASP.NET. |
Creazione di connessioni
Quando si utilizza Visual Studio, le connessioni vengono configurate mediante la Finestra di dialogo Aggiungi/Modifica connessione (generale). La finestra di dialogo Aggiungi connessione viene visualizzata quando si modificano o si creano connessioni all'interno di una delle procedure guidate relative ai dati o in Esplora server/Esplora database oppure quando si modificano le proprietà della connessione nella finestra Proprietà.
Le connessioni dati vengono configurate automaticamente quando si effettua una delle operazioni seguenti:
Azione |
Descrizione |
---|---|
Si esegue la Configurazione guidata origine dati. |
Le connessioni vengono configurate quando nella Configurazione guidata origine dati viene scelto il percorso del database. Per ulteriori informazioni, vedere Procedura: connettersi ai dati di un database. |
Si esegue la Configurazione guidata TableAdapter. |
Le connessioni vengono create all'interno della Configurazione guidata TableAdapter. Per ulteriori informazioni, vedere Procedura: creare oggetti TableAdapter. |
Si esegue la Configurazione guidata query TableAdapter. |
Le connessioni vengono create all'interno della Configurazione guidata query TableAdapter. Per ulteriori informazioni, vedere Procedura: creare query TableAdapter. |
Si trascinano elementi dalla Finestra Origini dati in un form o in Progettazione componenti. |
Gli oggetti connessione vengono creati quando si trascinano elementi dalla finestra Origini dati in Progettazione Windows Form o in Progettazione componenti. Per ulteriori informazioni, vedere Visualizzazione di dati su form nelle applicazioni Windows. |
Si aggiungono nuove connessioni dati a Esplora server/Esplora database. |
Le connessioni dati di Esplora server/Esplora database vengono visualizzate nell'elenco delle connessioni disponibili all'interno delle procedure guidate relative ai dati. Per ulteriori informazioni, vedere Procedura: aggiungere nuove connessioni dati in Esplora server/Esplora database. |
Stringhe di connessione
Tutti gli oggetti connessioni espongono più o meno gli stessi membri. I membri specifici disponibili con un determinato oggetto OleDbConnection, tuttavia, dipendono dall'origine dati alla quale è connesso. Non tutte le origini dati supportano tutti i membri della classe OleDbConnection.
La proprietà principale associata a un oggetto connessione è la proprietà ConnectionString, costituita da una stringa con coppie attributo/valore che forniscono le informazioni necessarie per accedere a un server di database e fare riferimento a un database specifico. Una tipica proprietà ConnectionString potrebbe essere analoga alla seguente:
Provider=SQLOLEDB.1;Data Source=MySQLServer;Initial Catalog=NORTHWIND;Integrated Security=SSPI
Questa particolare stringa di connessione specifica che la connessione deve utilizzare la protezione integrata di Windows. Una stringa di connessione può invece includere un nome utente e una password, ma non viene consigliata in quanto questi attributi vengono successivamente compilati nell'applicazione e si crea una potenziale violazione della protezione.
Nota sulla sicurezza: |
---|
L'archiviazione dei dettagli della stringa di connessione, ad esempio una password, può avere implicazioni sulla protezione dell'applicazione. La protezione integrata di Windows consente di controllare l'accesso a un database in modo più sicuro. Per ulteriori informazioni, vedere Protezione delle informazioni di connessione (ADO.NET). |
Le coppie attributo/valore più comuni utilizzate da OLE DB sono rappresentate separatamente anche da una singola proprietà, quale DataSource e Database. Quando si utilizza un oggetto connessione, è possibile impostare la proprietà ConnectionString come un'unica stringa oppure impostare singole proprietà di connessione. Se l'origine dati utilizzata richiede valori della stringa di connessione non rappresentati da singole proprietà, sarà necessario impostare la proprietà ConnectionString.
Salvataggio e recupero delle stringhe di connessione
È possibile memorizzare le stringhe di connessione all'interno dell'applicazione compilata oppure nel file di configurazione dell'applicazione. Per ulteriori informazioni, vedere Procedura: salvare una stringa di connessione.
Apertura e chiusura di connessioni
I due metodi principali per le connessioni sono Open e Close. Il metodo Open utilizza le informazioni della proprietà ConnectionString per contattare l'origine dati e stabilire una connessione aperta. Il metodo Close determina l'interruzione della connessione. La chiusura della connessione è essenziale, in quanto la maggior parte delle origini dati supporta solo un numero limitato di connessioni aperte, che in ogni caso impegnano molte risorse del sistema.
Se si utilizzano oggetti TableAdapter, DataAdapter o comandi dei dati, non sarà necessario aprire e chiudere una connessione in modo esplicito. Quando si chiama un metodo di questi oggetti, ad esempio il metodo Fill o Update di un adattatore, il metodo verifica se la connessione è già aperta. Se è chiusa, l'adattatore apre la connessione, ne esegue la logica e chiude nuovamente la connessione.
Metodi come Fill si limitano ad aprire e chiudere automaticamente la connessione qualora non sia già aperta. Se la connessione è aperta, il metodo la utilizza ma non la chiude, consentendo di aprire e chiudere personalmente i comandi dei dati. È possibile effettuare tale operazione se si dispone di più adattatori che condividono una connessione. In tal caso, sarebbe poco efficiente l'apertura e la chiusura della connessione da parte di ciascun adattatore quando si chiama il relativo metodo Fill, mentre è possibile aprire la connessione, chiamare il metodo Fill di ciascun adattatore e al termine chiudere la connessione.
Pool di connessioni
Spesso in un'applicazione diversi utenti effettuano lo stesso tipo di accesso al database. È possibile, ad esempio, che più utenti eseguano query nello stesso database per ottenere gli stessi dati. In questi casi, le prestazioni dell'applicazione possono essere migliorate facendo in modo che l'applicazione condivida le connessioni (o ne esegua il pool) all'origine dati. L'overhead causato dal fatto che ciascun utente apre e chiude una diversa connessione può avere effetti negativi sulle prestazioni dell'applicazione.
Se si utilizza la classe OleDbConnection, OdbcConnection o OracleConnection, il pool di connessioni viene gestito automaticamente dal provider e pertanto non sarà necessario gestirlo personalmente.
Se si utilizza la classe SqlConnection, il pool di connessioni viene gestito in modo implicito, ma sarà possibile gestirlo anche personalmente. Per ulteriori informazioni, vedere Pool di connessioni di SQL Server (ADO.NET).
Transazioni
Gli oggetti connessione supportano le transazioni tramite il metodo BeginTransaction che crea un oggetto transazione, ad esempio un oggetto SqlTransaction. L'oggetto transazione a sua volta supporta metodi che consentono di eseguire il commit o il rollback delle transazioni.
Le transazioni sono gestite tramite codice. Per ulteriori informazioni, vedere Transazioni e concorrenza (ADO.NET).
In .NET Framework versione 2.0 è incluso un nuovo framework di transazioni accessibile dallo spazio dei nomi System.Transactions. Questo framework espone le transazioni secondo modalità totalmente integrate in .NET Framework, incluso ADO.NET. Per ulteriori informazioni, vedere Integrazione di System.Transactions con SQL Server (ADO.NET).
Informazioni sulla connessione e protezione
Dal momento che l'apertura di una connessione prevede l'accesso a un'importante risorsa, ovvero a un database, nella configurazione e nell'utilizzo di una connessione sono spesso implicati problemi di protezione.
La protezione dell'applicazione e il relativo accesso all'origine dati dipende dall'architettura del sistema. In un'applicazione basata sul Web, ad esempio, gli utenti generalmente ottengono l'accesso anonimo a Internet Information Services (IIS) e pertanto non devono fornire credenziali di protezione. In questo caso, l'applicazione manterrà e utilizzerà le proprie informazioni di accesso, anziché le informazioni specifiche dell'utente, per aprire la connessione e accedere al database.
Nota sulla sicurezza: |
---|
L'archiviazione dei dettagli della stringa di connessione, ad esempio una password, può avere implicazioni sulla protezione dell'applicazione. La protezione integrata di Windows consente di controllare l'accesso a un database in modo più sicuro. Per ulteriori informazioni, vedere Protezione delle informazioni di connessione (ADO.NET). |
Nelle reti Intranet o in applicazioni a più livelli è possibile sfruttare l'opzione di protezione integrata fornita da Windows, Internet Information Services e SQL Server. In questo modello le credenziali di autenticazione di un utente per la rete locale vengono utilizzate anche per l'accesso alle risorse del database e non vengono utilizzati nomi utente o password esplicite nella stringa di connessione. Le autorizzazioni vengono generalmente stabilite sul server di database tramite i gruppi e pertanto non è necessario specificare singole autorizzazioni per tutti gli utenti che possono accedere al database. In questo modello non è necessario archiviare le informazioni di accesso per la connessione e non sono necessarie altre procedure per proteggere le informazioni relative alla stringa di connessione.
Per ulteriori informazioni sulla protezione, vedere le seguenti pagine:
Connessioni in fase di progettazione in Esplora server/Esplora database
In Esplora server/Esplora database è possibile creare connessioni in fase di progettazione alle origini dati. In questo modo è possibile eseguire ricerche nelle origini dati disponibili, visualizzare informazioni su tabelle, colonne e altri elementi in esse contenuti, nonché modificare e creare elementi di database.
L'applicazione non utilizza direttamente le connessioni disponibili in Esplora server/Esplora database. Tali connessioni vengono utilizzate in Visual Studio per l'uso del database in fase di progettazione. Per ulteriori informazioni, vedere Visual Database Tools.
È ad esempio possibile utilizzare Esplora server/Esplora database in fase di progettazione per la creazione di una connessione a un database. In seguito, durante la progettazione di un form, sarà possibile esaminare il database, selezionare colonne da una tabella e trascinarle in Progettazione DataSet. In questo modo verranno creati un TableAdapter nel dataset, nonché un nuovo oggetto connessione incluso nel TableAdapter appena creato.
Le informazioni sulle connessioni in fase di progettazione sono memorizzate sul computer locale in modo indipendente da uno specifico progetto o una specifica soluzione. Pertanto, una volta stabilita una connessione in fase di progettazione durante l'utilizzo di un'applicazione, questa verrà visualizzata in Esplora server/Esplora database quando si lavora in Visual Studio, finché il server al quale fa riferimento la connessione sarà disponibile. Per ulteriori informazioni sull'utilizzo di Esplora server/Esplora database e sulla creazione di connessioni in fase di progettazione, vedere Procedura: aggiungere nuove connessioni dati in Esplora server/Esplora database.
Vedere anche
Attività
Procedura: connettersi ai dati di un database
Procedura dettagliata: connessione ai dati di un database
Altre risorse
Connessione ai dati in Visual Studio
Accesso ai dati tramite ASP.NET
Preparazione dell'applicazione al ricevimento di dati
Recupero di dati nell'applicazione
Visualizzazione di dati su form nelle applicazioni Windows