Quando un'applicazione si connette a un
database o ad un file di dati, i provider di dati (data providers) vengono utilizzati come ponte tra l'applicazione e la base dati.
Le stringhe di connessione contengono le informazioni affinchè il provider sia in grado di stabilire la connessione con il database o il file di dati.
Poichè ci sono diversi providers e ogni provider ha diverse vie per formare una connessione, ne consegue che ci sono diverse vie per scrivere la stringa di connessione.
Questa è formata da una serie di coppie
CHIAVE=VALORE che poi vengono passate al provider.
Scritta la stringa di connessione (che prende il nome di
ConnectionString ), è sufficiente passarla all'oggetto
Connection e, successivamente, aprire la connessione con una chiamata al metodo
Open , per instaurare una comunicazione con la base dati. Per chiudere la connessione basta utilizzare il metodo
Close ed infine per liberare le risorse che precedono la
Garbage Collection, utilizzare il metodo Dispose
Nel seguente esempio, utilizzeremo un OleDb Provider per connettersi ad una base dati Microsoft Access (file.mdb).
Dim DBconnString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\database.mdb;Encrypt Password=False;Mask Password=False"
Dim myoledbConn As New OleDbConnection(DBconnString)
Try
myoledbConn.Open()
'... Operazioni sulla base dati
Catch ex As Exception
'In caso di errore sulla connessione/operazioni sulla base dati
Finally
myoledbConn.Close()
myoledbConn.Dispose()
End Try
Vediamo ora come scrivere le stringhe di connessione su alcune basi di dati. Ovviamente scriveremo solamente alcune modalità. Per approfondimenti, visitate il sito
Microsoft
Microsoft Access 2007
Provider OLE DB: ACE OLEDB 12.0
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\mdb.accdb;Persist Security Info=False;
per una connessione standard
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\mdb.accdb;Jet OLEDB:Database Password=lamiapassword;
per una connessione con password
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=\\serverName\mdb\mdb.accdb;
per una connessione con percorso di rete
ODBC Driver: Microsoft Access accdb ODBC Driver
Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=C:\mdb.accdb;Uid=Admin;Pwd=;
per una connessione standard
Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=C:\mdb.accdb;Exclusive=1;Uid=admin;Pwd=;
per una connessione esclusiva
Microsoft Access
Provider OLE DB: Microsoft Jet OLE DB 4.0
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\db.mdb;User Id=admin;Password=;
per una connessione standard
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\db.mdb;Jet OLEDB:Database Password=lamiapassword;
per una connessione con password
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\serverName\mdb\db.mdb;User Id=admin;Password=;
per una connessione con percorso di rete
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\db.mdb;Mode=Share Exclusive;User Id=admin;Password=;
per una connessione esclusiva
ODBC Driver: Microsoft Access ODBC Driver
Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\db.mdb;Uid=Admin;Pwd=;
per una connessione standard
Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\mydatabase.mdb;Exclusive=1;Uid=admin;Pwd=;
per una connessione esclusiva
Microsoft Excel
Provider OLE DB: Microsoft Jet OLE DB 4.0
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\file.xls;Extended Properties="Excel 8.0;HDR=Yes;IMEX=1";
per una connessione standard
NB. HDR=yes/no indica se è presente, o meno, la riga di intestazione!
ODBC Driver: Microsoft Excel ODBC Driver
Driver={Microsoft Excel Driver (*.xls)};DriverId=790;Dbq=C:\file.xls;DefaultDir=c:\miopercorso;
per una connessione standard
ODBC Driver: Microsoft Excel 2007 ODBC Driver
Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=C:\file.xls;
per una connessione standard
SQL Server 2012 (2008 - 2005)
.NET libraries: .NET Framework Data Provider per SQL Server
Server=IndirizzoServer;Database=mioDataBase;User Id=NomeUtente;Password=lamiapassword;
per una connessione standard
Server=IndirizzoServer;Database=mioDataBase;Trusted_Connection=True;
per una connessione trusted
Data Source=192.168.200.100,1433;Network Library=DBMSSOCN;Initial Catalog=mioDataBase;User ID=NomeUtente;Password=lamiapassword;
per una connessione con indirizzo IP
NB. 1433 è la porta di default per SQL Server
Server=.\SQLExpress;AttachDbFilename=c:\db\mioDataBase.mdf;Database=mioDataBase;Trusted_Connection=Yes;
per una connessione ad un file allegato ad un'istanza locale di SQL Server Express
.NET libraries: SQL Server Native Client 11.0 OLE DB Provider (per SQL Server 2012)
.NET libraries: SQL Server Native Client 10.0 OLE DB Provider (per SQL Server 2008)
.NET libraries: SQL Server Native Client 9.0 OLE DB Provider (per SQL Server 2005)
Provider=SQLNCLI11;Server=IndirizzoServer;Database=mioDataBase;Uid=NomeUtente;Pwd=lamiapassword;
per una connessione standard
Provider=SQLNCLI11;Server=IndirizzoServer;Database=mioDataBase;Trusted_Connection=yes;
per una connessione trusted
Provider=SQLNCLI11;Server=IndirizzoServer\NomeIstanza;Database=mioDataBase;Trusted_Connection=yes;
per una connessione ad una istanza Sql Server
Provider=SQLNCLI11;Server=.\SQLExpress;AttachDbFilename=c:\db\mydbfile.mdf;Database=mioDataBase;Trusted_Connection=Yes;
per una connessione ad un file allegato ad un'istanza locale di SQL Server Express
Nel caso si utilizza SQL Server 2008, al posto di SQLNCLI11 bisogna utilizzare SQLNCLI10
Nel caso si utilizza SQL Server 2005, al posto di SQLNCLI11 bisogna utilizzare SQLNCLI
.NET libraries: SQL Server Native Client 11.0 ODBC Driver (per SQL Server 2012)
.NET libraries: SQL Server Native Client 10.0 ODBC Driver (per SQL Server 2008)
.NET libraries: SQL Server Native Client 9.0 ODBC Driver (per SQL Server 2005)
Driver={SQL Server Native Client 11.0};Server=IndirizzoServer;Database=mioDataBase;Uid=NomeUtente;Pwd=lamiapassword;
per una connessione standard
Driver={SQL Server Native Client 11.0};Server=IndirizzoServer;Database=mioDataBase;Trusted_Connection=yes;
per una connessione trusted
Driver={SQL Server Native Client 11.0};Server=IndirizzoServer\NomeIstanza;Database=mioDataBase;Trusted_Connection=yes;
per una connessione ad una istanza Sql Server
Driver={SQL Server Native Client 11.0};Server=.\SQLExpress;AttachDbFilename=c:\db\mioDataBase.mdf;Database=mioDataBase;Trusted_Connection=Yes;
per una connessione ad un file allegato ad un'istanza locale di SQL Server Express
Nel caso si utilizza SQL Server 2008, al posto di {SQL Server Native Client 11.0} bisogna utilizzare {SQL Server Native Client 10.0}
Nel caso si utilizza SQL Server 2005, al posto di {SQL Server Native Client 11.0} bisogna utilizzare {SQL Native Client}
MySQL
.NET libraries per MySQL: MySQL Connector/Net
Server=IndirizzoServer;Database=mioDataBase;Uid=NomeUtente;Pwd=lamiapassword;
per una connessione standard
Server=IndirizzoServer;Port=1234;Database=mioDataBase;Uid=NomeUtente;Pwd=lamiapassword;
specificando la porta TCP (quella di default è la 3306)
Server=IndirizzoServer;Database=mioDataBase;Uid=NomeUtente;Pwd=lamiapassword;SslMode=Preferred;
per una connessione Criptata (disponibile dalla versione 6.2.1 del Connector/NET)
Server=IndirizzoServer;Database=mioDataBase;Uid=NomeUtente;Pwd=lamiapassword;SSL Mode=Required;CertificateFile=C:\certificato.pfx;CertificatePassword=lamiapassword;
per una connessione SSL con certificato su file (disponibile dalla versione 6.2.1 del Connector/NET)
OLE DB providers per MySQL: MySQL OLEDB
Provider=MySQLProv;Data Source=mioDataBase;User Id=NomeUtente;Password=lamiapassword;
per una connessione standard
ODBC drivers per MySQL: MySQL Connector/ODBC 3.51
Driver={MySQL ODBC 3.51 Driver};Server=localhost;Database=mioDataBase;User=NomeUtente;Password=lamiapassword;Option=3;
per una connessione con database locale
Driver={MySQL ODBC 3.51 Driver};Server=IndirizzoServer;Database=mioDataBase;User=NomeUtente;Password=lamiapassword;Option=3;
per una connessione con database remoto
Driver={MySQL ODBC 3.51 Driver};Server=IndirizzoServer;Port=3306;Database=mioDataBase;User=NomeUtente;Password=lamiapassword;Option=3;
per una connessione al database specificando il TCP/IP
Driver={MySQL ODBC 3.51 Driver};Server=IndirizzoServer;Database=mioDataBase;User=NomeUtente;Password=lamiapassword;sslca=c:\cacert.pem;sslcert=c:\client-cert.pem;sslkey=c:\client-key.pem;sslverify=1;Option=3;
per una connessione SSL
AS/400 (IBM iSeries)
.NET libraries per AS/400 (IBM iSeries): IBM DB2 per i .NET data provider
DataSource=IndirizzoServer;UserID=NomeUtente;Password=lamiapassword;DataCompression=True;
per una connessione standard
OLE DB providers per AS/400 (IBM iSeries): IBM Client Access OLE DB provider
Provider=IBMDA400;Data Source=MioSistema;User Id=NomeUtente;Password=lamiapassword;
per una connessione standard (MioSistema è il nome dato dal system connection in OperationsNavigator)
Oracle
.NET libraries per Oracle: Oracle Data Provider per .NET
Data Source=TORCL;User Id=NomeUtente;Password=lamiapassword;
usando TNS
Data Source=TORCL;Integrated Security=SSPI;
per una connessione con sicurezza integrata
OLE DB providers oer Oracle: Microsoft OLE DB Provider per Oracle
Provider=msdaora;Data Source=MioOracleDB;User Id=NomeUtente;Password=lamiapassword;
per una connessione standard
Provider=msdaora;Data Source=MioOracleDB;Persist Security Info=False;Integrated Security=Yes;
per una connessione trusted
OLE DB providers per Oracle: Oracle Provider per OLE DB
Provider=OraOLEDB.Oracle;Data Source=MioOracleDB;User Id=NomeUtente;Password=lamiapassword;
per una connessione standard
Provider=OraOLEDB.Oracle;Data Source=MioOracleDB;OSAuthent=1;
per una connessione trusted
Active Directory
OLE DB providers per Active Directory: Active Directory OLE DB provider
Provider=ADSDSOObject;
per una connessione standard
Provider=ADSDSOObject;User Id=NomeUtente;Password=lamiapassword;
per una connessione usando username e password