Connessione ad una sorgente dati

annuncio pubblicitario
Solo quello che ti interessa | ADO.NET - Connessione ad una sorgente dati
Copyright admin [email protected]
http://www.belloma.it/ado-net-connessione-ad-una-sorgente-dati/
ADO.NET - Connessione ad una sorgente dati
Per comunicare con una sorgente dati ed eseguire i comandi di lettura e
aggiornamento è necessario stabilire una connessione con essa. Ciascun data
provider implementa implementa la classe astratta DbConnection.
I metodi principali delle classi che implementano DbConnection (come
SqlConnection) sono Open e Close (le connessioni vanno sempre chiuse), mentre
ConnectionString è la proprietà per la stringa di connessione che può anche essere
valorizzata in fase di creazione dell’istanza passando tale stringa al costruttore.
Esempio di creazione e gestione della connessione verso un DB SQLServer
string connStr = "Data Source=PORTATILEHP\\SQLEXPRESS;Initial
Catalog=AdventureWorks;
Integrated Security=True;
providerName=\"Microsoft SQL Server\""; SqlConnection conn = new
SqlConnection(connStr); try { ... conn.Open(); ... } catch (SqlException ex){
// Gestione dell’eccezione } finally { // Chiusura della connessione if (conn.State
== ConnectionState.Open)
conn.Close(); }
Dal momento che la classe DbConnection implementa l’interfaccia IDisposable è
possibile usare il costrutto using che chiude in modo implicito la connessione sia in
caso di successo che in caso di errore, per cui il codice di cui sopra potrà essere
scritto come:
page 1 / 12
Solo quello che ti interessa | ADO.NET - Connessione ad una sorgente dati
Copyright admin [email protected]
http://www.belloma.it/ado-net-connessione-ad-una-sorgente-dati/
... using(SqlConnection conn = new SqlConnection(connStr)) { try {
...
conn.Open();
... } catch (SqlException ex){
// Gestione dell’eccezione
}
La stringa di connessione
E’ composta da una serie di coppie key=valore separate da ; . Le principali key
sono le seguenti: - Data source (equivalente a Server). Specifica il percorso dove risiede la
sorgente dati
- Database (equivalente a Initial Catalog). Identifica il database predefinito
- User ID (equivalente a Uid). Identifica il nome utente (per accessi con
autenticazione)
- Password (equivalente a Pwd). Identifica la password (per accessi con
autenticazione)
- Integrated Security (equivalente aTrusted_Connection). Permette di abilitare
l’autenticazione Windows (cioè Integrata). In questo caso le credenziali
possono essere omesse (sono riconosciute dal dominio)
- Provider. Specifica il provider OLE DB da utilizzare
- Driver. Specifica il driver ODBC da utilizzare
Alcuni esempi:
Excel via ODBC
Excel via OLEDB
Access OLEDB
MySQL
(Conn./NET)
MYSQL (OLEDB)
“Driver ={Microsoft Excel Driver (*.xls)};
DBQ=C:\\Data.xls;”
"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=
C:\\Data.xls;
"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=
C:\\Data.mdb;
"Server=localhost; Port=3306; Database=Northwind;
Uid=User; Pwd=Pass;”
"Provider=MySQLProv; Data Source=localhost; User
ID=User; Password=Pass;”
page 2 / 12
}
Solo quello che ti interessa | ADO.NET - Connessione ad una sorgente dati
Copyright admin [email protected]
http://www.belloma.it/ado-net-connessione-ad-una-sorgente-dati/
SQL ServExp
"Server=.\\SQLExpress; Database=Northwind;
page 3 / 12
Solo quello che ti interessa | ADO.NET - Connessione ad una sorgente dati
Copyright admin [email protected]
http://www.belloma.it/ado-net-connessione-ad-una-sorgente-dati/
(percorso assoluto)
AttachDbFilename=C:\\Data\\Northwind.mdf; Trusted_Connection=Yes;”
page 4 / 12
Solo quello che ti interessa | ADO.NET - Connessione ad una sorgente dati
Copyright admin [email protected]
http://www.belloma.it/ado-net-connessione-ad-una-sorgente-dati/
SQL ServExp
(cartella AppData)
page 5 / 12
Solo quello che ti interessa | ADO.NET - Connessione ad una sorgente dati
Copyright admin [email protected]
http://www.belloma.it/ado-net-connessione-ad-una-sorgente-dati/
"Server=.\\SQLExpress; AttachDbFilename=| Data
Directory | Northwind.mdf; Database=Northwind;
Trusted_Connection=Yes;”
page 6 / 12
Solo quello che ti interessa | ADO.NET - Connessione ad una sorgente dati
Copyright admin [email protected]
http://www.belloma.it/ado-net-connessione-ad-una-sorgente-dati/
SQL Server
Integrata)
(aut.
page 7 / 12
Solo quello che ti interessa | ADO.NET - Connessione ad una sorgente dati
Copyright admin [email protected]
http://www.belloma.it/ado-net-connessione-ad-una-sorgente-dati/
"Data Source=localhost; Integrated Security=true;
Initial Catalog=Northwind;”
page 8 / 12
Solo quello che ti interessa | ADO.NET - Connessione ad una sorgente dati
Copyright admin [email protected]
http://www.belloma.it/ado-net-connessione-ad-una-sorgente-dati/
SQL Server (aut.
SQL Server)
page 9 / 12
Solo quello che ti interessa | ADO.NET - Connessione ad una sorgente dati
Copyright admin [email protected]
http://www.belloma.it/ado-net-connessione-ad-una-sorgente-dati/
"Data Source=localhost; User=User; Password=Pass;
Initial Catalog=Northwind;”
L'autenticazione integrata rappresenta la modalità di connessione più sicura ed
quindi da preferire. In ogni caso è buona norma utilizzare sempre utenti con
permessi ristretti.
Nel web.config esiste una sezione specifica in cui è possibile definire le stringhe di
connessione (vedi sotto). Queste saranno accessibile via codice o in modo
dichiarativo tramite ConfigurationManger.ConnectionStrings (possono essere
protette tramite crittografia RSA o DPAPI.
<configuration> <connectionStrings> <add name="SqlNorthwind" connectionString="Data Source=PORTATILEHP\SQLEXPRESS; page 10 / 12
Solo quello che ti interessa | ADO.NET - Connessione ad una sorgente dati
Copyright admin [email protected]
http://www.belloma.it/ado-net-connessione-ad-una-sorgente-dati/
Integrated Scurity=True; Initial Catalog=Northwind;" providerName="System.Data.SqlClient"/> <add name="MdbNorthwind" connectionString="~/App_Data/Northwind.mdb" providerName="System.Data.OleDb"/> </connectionStrings> </configuration>
Per utilizzare ConfigurationManger.ConnectionStrings vedere l'esempio sotto
string C_Str =
ConfigurationManager.ConnectionStrings["SqlNorthwind"].ConnectionString;
using(SqlConnection conn = new SqlConnection(C_Str)) { ... }
page 11 / 12
Solo quello che ti interessa | ADO.NET - Connessione ad una sorgente dati
Copyright admin [email protected]
http://www.belloma.it/ado-net-connessione-ad-una-sorgente-dati/
La stringa di connessione può essere anche creata in modo programmatico. Per
ogni provider esiste un implementazione della classe astratta
DbConnectionStringBuilder che permette di assemblare la stringa di connessione. A
ciascun parametro della stringa di connessione corrisponde un parametro del
builder. Una volta valorizzati questi parametri, si accederà alla stringa di
connessione così creata attraverso la proprietà ConnectionString. Questo metodo è
utile nei casi in n cui si vuole dare all’utente la possibilità di scegliere il DB a cui
connettersi. SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder();
builder.DataSource = ServerName; builder.InitialCatalog = Database;
builder.IntegratedSecurity = true; SqlConnection conn = new
SqlConnection(builder.ConnectionString);
page 12 / 12
Scarica