Classe OleDbConnectionStringBuilder
Aggiornamento: novembre 2007
Fornisce una modalità semplice per creare e gestire i contenuti delle stringhe di connessione utilizzate dalla classe OleDbConnection.
Assembly: System.Data (in System.Data.dll)
Il costruttore di stringhe di connessione consente agli sviluppatori di creare a livello di codice stringhe di connessione sintatticamente corrette e di analizzare e ricostruire le stringhe di connessione esistenti, utilizzando proprietà e metodi della classe. Il costruttore di stringhe di connessione fornisce proprietà fortemente tipizzate, che corrispondono alle coppie chiave/valore note consentite dalle connessioni OLE DB, e gli sviluppatori possono aggiungere coppie chiave/valore arbitrarie per qualsiasi altro valore delle stringhe di connessione. La classe OleDbConnectionStringBuilder implementa l'interfaccia ICustomTypeDescriptor. Ciò significa che la classe funziona con le finestre di progettazione di Visual Studio .NET in fase di progettazione. Quando gli sviluppatori utilizzano la finestra di progettazione per costruire DataSet fortemente tipizzati e connessioni fortemente tipizzate all'interno di Visual Studio .NET, la classe di costruttori di stringhe di connessione fortemente tipizzate visualizzerà le proprietà associate al tipo relativo e sarà dotata di convertitori in grado di eseguire il mapping di valori comuni per chiavi note.
Gli sviluppatori per cui è necessaria la creazione di stringhe come parte di applicazioni possono utilizzare la classe OleDbConnectionStringBuilder per costruire e modificare le stringhe di connessione. La classe facilita inoltre la gestione delle stringhe di connessione archiviate nel file di configurazione delle applicazioni. La classe OleDbConnectionStringBuilder esegue verifiche limitate al solo gruppo di coppie chiave/valore note. Di conseguenza, utilizzando questa classe è possibile creare stringhe di connessione non valide. Nella tabella riportata di seguito sono elencate le chiavi note, insieme alle corrispondenti proprietà all'interno della classe OleDbConnectionStringBuilder, con i rispettivi valori predefiniti. Oltre a tali valori specifici, gli sviluppatori possono aggiungere all'insieme qualsiasi coppia chiave/valore contenuta nell'istanza OleDbConnectionStringBuilder:
Tasto | Proprietà | Valore predefinito |
|---|---|---|
Nome file | "" | |
Provider | "" | |
Origine dati | "" | |
Persist Security Info | False | |
Servizi OLE DB | -13 |
La proprietà Item gestisce i tentativi di inserimento di voci non autorizzate. Ad esempio, il codice seguente, utilizzando la proprietà Item predefinita (l'indicizzatore in C#), ignora correttamente la coppia chiave/valore nidificata:
Dim builder As _
New System.Data.OleDb.OleDbConnectionStringBuilder
builder("Provider") = "Microsoft.Jet.OLEDB.4.0"
builder("Data Source") = "C:\Sample.mdb"
builder("User Id") = "Admin;NewValue=Bad"
System.Data.OleDb.OleDbConnectionStringBuilder builder =
new System.Data.OleDb.OleDbConnectionStringBuilder();
builder["Provider"] = "Microsoft.Jet.OLEDB.4.0";
builder["Data Source"] = "C:\\Sample.mdb";
builder["User Id"] = "Admin;NewValue=Bad";
Il risultato è la seguente stringa di connessione, che consente di gestire in modo sicuro il valore non valido:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Sample.mdb;User ID="Admin;NewValue=Bad"
Nell'applicazione console riportata di seguito vengono costruite stringhe di connessione per diversi database OLE DB. Nell'esempio viene prima di tutto creata una stringa di connessione per un database Microsoft Access, quindi viene creata una stringa di connessione per un database IBM DB2. Nell'esempio viene inoltre analizzata una stringa di connessione esistente e vengono illustrate diverse modalità di modifica dei contenuti della stringa di connessione.
Nota: |
|---|
Nell'esempio riportato di seguito viene inclusa una password per illustrare come si comporta l'oggetto OleDbConnectionStringBuilder con le stringhe di connessione. Nelle applicazioni si consiglia di utilizzare l'autenticazione di Windows. Se è necessario utilizzare una password, non includere password hardcoded nell'applicazione. |
using System.Data.OleDb; class Program { static void Main(string[] args) { OleDbConnectionStringBuilder builder = new OleDbConnectionStringBuilder(); builder.ConnectionString = @"Data Source=C:\Sample.mdb"; // Call the Add method to explicitly add key/value // pairs to the internal collection. builder.Add("Provider", "Microsoft.Jet.Oledb.4.0"); builder.Add("Jet OLEDB:Database Password", "MyPassword!"); builder.Add("Jet OLEDB:System Database", @"C:\Workgroup.mdb"); // Set up row-level locking. builder.Add("Jet OLEDB:Database Locking Mode", 1); Console.WriteLine(builder.ConnectionString); Console.WriteLine(); // Clear current values and reset known keys to their // default values. builder.Clear(); // Pass the OleDbConnectionStringBuilder an existing // connection string, and you can retrieve and // modify any of the elements. builder.ConnectionString = "Provider=DB2OLEDB;Network Transport Library=TCPIP;" + "Network Address=192.168.0.12;Initial Catalog=DbAdventures;" + "Package Collection=SamplePackage;Default Schema=SampleSchema;"; Console.WriteLine("Network Address = " + builder["Network Address"].ToString()); Console.WriteLine(); // Modify existing items. builder["Package Collection"] = "NewPackage"; builder["Default Schema"] = "NewSchema"; // Call the Remove method to remove items from // the collection of key/value pairs. builder.Remove("User ID"); // Note that calling Remove on a nonexistent item does not // throw an exception. builder.Remove("BadItem"); Console.WriteLine(builder.ConnectionString); Console.WriteLine(); // Setting the indexer adds the value, if // necessary. builder["User ID"] = "SampleUser"; builder["Password"] = "SamplePassword"; Console.WriteLine(builder.ConnectionString); Console.WriteLine("Press Enter to finish."); Console.ReadLine(); } }
System.Data.Common.DbConnectionStringBuilder
System.Data.OleDb.OleDbConnectionStringBuilder
Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition , Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98
.NET Framework e .NET Compact Framework non supportano tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.
Nota: