OleDbConnection.ConnectionString Propriété
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Obtient ou définit la chaîne utilisée pour ouvrir une base de données.
public:
virtual property System::String ^ ConnectionString { System::String ^ get(); void set(System::String ^ value); };
public:
property System::String ^ ConnectionString { System::String ^ get(); void set(System::String ^ value); };
[System.ComponentModel.SettingsBindable(true)]
public override string ConnectionString { get; set; }
[System.Data.DataSysDescription("OleDbConnection_ConnectionString")]
public string ConnectionString { get; set; }
public override string ConnectionString { get; set; }
[<System.ComponentModel.SettingsBindable(true)>]
member this.ConnectionString : string with get, set
[<System.Data.DataSysDescription("OleDbConnection_ConnectionString")>]
member this.ConnectionString : string with get, set
member this.ConnectionString : string with get, set
Public Overrides Property ConnectionString As String
Public Property ConnectionString As String
Valeur de propriété
Chaîne de connexion du fournisseur OLE DB qui inclut le nom de la source de données et d’autres paramètres nécessaires pour établir la connexion initiale. La valeur par défaut est une chaîne vide.
Implémente
- Attributs
Exceptions
Un argument de chaîne de connexion non valide a été fourni ou un argument de chaîne de connexion requis n’a pas été fourni.
Exemples
L’exemple suivant crée et OleDbConnection définit certaines de ses propriétés dans la chaîne de connexion.
static void OpenConnection(string connectionString)
{
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
try
{
connection.Open();
Console.WriteLine("ServerVersion: {0} \nDataSource: {1}",
connection.ServerVersion, connection.DataSource);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
// The connection is automatically closed when the
// code exits the using block.
}
}
Public Sub OpenConnection(ByVal connectionString As String)
Using connection As New OleDbConnection(connectionString)
Try
connection.Open()
Console.WriteLine("Server Version: {0} DataSource: {1}", _
connection.ServerVersion, connection.DataSource)
Catch ex As Exception
Console.WriteLine(ex.Message)
End Try
' The connection is automatically closed when the
' code exits the Using block.
End Using
End Sub
Remarques
Il ConnectionString est conçu pour correspondre au format de chaîne de connexion OLE DB aussi étroitement que possible avec les exceptions suivantes :
La clause « Provider =
value» est requise. Toutefois, vous ne pouvez pas utiliser « Provider = MSDASQL », car le fournisseur de données .NET Framework pour OLE DB ne prend pas en charge le fournisseur OLE DB pour ODBC (MSDASQL). Pour accéder aux sources de données ODBC, utilisez l’objet OdbcConnection qui se trouve dans l’espace System.Data.Odbc de noms.Contrairement à ODBC ou ADO, la chaîne de connexion retournée est la même que celle définie par l’utilisateur ConnectionString, moins les informations de sécurité si
Persist Security Infoelle est définiefalsesur (valeur par défaut). Le fournisseur de données .NET Framework pour OLE DB ne conserve pas ou ne retourne pas le mot de passe dans une chaîne de connexion, sauf si vous définissez lePersist Security Infomot clétruesur (non recommandé). Pour maintenir un niveau de sécurité élevé, il est fortement recommandé d’utiliser leIntegrated Securitymot clé avecPersist Security Infola valeur définiefalsesur .
Vous pouvez utiliser la ConnectionString propriété pour vous connecter à diverses sources de données. L’exemple suivant illustre plusieurs chaînes de connexion possibles.
"Provider=MSDAORA; Data Source=ORACLE8i7;Persist Security Info=False;Integrated Security=Yes"
"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:\bin\LocalAccess40.mdb"
"Provider=SQLOLEDB;Data Source=(local);Integrated Security=SSPI"
Si le Data Source mot clé n’est pas spécifié dans la chaîne de connexion, le fournisseur tente de se connecter au serveur local s’il en est disponible.
Pour plus d’informations sur les chaînes de connexion, consultez Utilisation de mots clés de chaîne de connexion avec SQL Server Native Client.
La ConnectionString propriété ne peut être définie que lorsque la connexion est fermée. La plupart des valeurs de chaîne de connexion ont des propriétés en lecture seule correspondantes. Lorsque la chaîne de connexion est définie, ces propriétés sont mises à jour, sauf lorsqu’une erreur est détectée. Dans ce cas, aucune des propriétés n’est mise à jour. OleDbConnection les propriétés retournent uniquement les paramètres contenus dans le ConnectionString.
La réinitialisation de la ConnectionString connexion fermée réinitialise toutes les valeurs de chaîne de connexion et les propriétés associées. Cela inclut le mot de passe. Par exemple, si vous définissez une chaîne de connexion qui inclut « Initial Catalog= AdventureWorks », puis réinitialisez la chaîne de connexion sur « Provider= SQLOLEDB ; Source de données = MySQLServer ; IntegratedSecurity=SSPI", la Database propriété n’est plus définie sur AdventureWorks. (La valeur du catalogue initial de la chaîne de connexion correspond à la Database propriété.)
Une validation préliminaire de la chaîne de connexion est effectuée lorsque la propriété est définie. Si les valeurs de la Providerchaîne , Connect Timeoutou OLE DB ServicesPersist Security Infosont incluses dans la chaîne, ces valeurs sont vérifiées. Lorsqu’une application appelle la Open méthode, la chaîne de connexion est entièrement validée. Si la chaîne de connexion contient des propriétés non valides ou non prises en charge, une exception d’exécution, telle que ArgumentException, est générée.
Avertissement
Il est possible de fournir des informations de connexion pour un OleDbConnection fichier UDL (Universal Data Link). Toutefois, vous devez éviter de le faire. Les fichiers UDL ne sont pas chiffrés et exposent les informations de chaîne de connexion en texte clair. Comme un fichier UDL est une ressource basée sur un fichier externe pour votre application, il n'est pas possible de le sécuriser à l'aide du .NET Framework.
Le format de base d’une chaîne de connexion comprend une série de paires mot clé/valeur séparées par des points-virgules. Le signe égal (=) connecte chaque mot clé et sa valeur. Pour inclure des valeurs qui contiennent un point-virgule, un caractère de guillemet unique ou un caractère de guillemets doubles, la valeur doit être placée entre guillemets doubles. Si la valeur contient à la fois un point-virgule et un caractère de guillemets doubles, la valeur peut être placée entre guillemets simples. Le guillemet unique est également utile si la valeur commence par un caractère de guillemet double. À l’inverse, le guillemet double peut être utilisé si la valeur commence par un guillemet unique. Si la valeur contient à la fois des guillemets simples et des guillemets doubles, le caractère guillemet utilisé pour placer la valeur doit être doublé chaque fois qu’elle se produit dans la valeur.
Pour inclure des espaces précédents ou de fin dans la valeur de chaîne, la valeur doit être placée entre guillemets simples ou guillemets doubles. Tous les espaces de début ou de fin autour des valeurs entières, booléennes ou énumérées sont ignorés, même s’ils sont placés entre guillemets. Toutefois, les espaces dans un mot clé littéral de chaîne ou une valeur sont conservés. Des guillemets simples ou doubles peuvent être utilisés dans une chaîne de connexion sans utiliser de délimiteurs (par exemple, Data Source= my'Server ou Data Source= my"Server) sauf si un guillemet est le premier ou le dernier caractère de la valeur.
Pour inclure un signe égal (=) dans un mot clé ou une valeur, il doit être précédé d’un autre signe égal. Par exemple, dans la chaîne de connexion hypothétique suivante, le mot clé est « key=word » et la valeur est « value ».
"key==word=value"
Si un mot clé spécifique dans une paire keyword=value se produit plusieurs fois dans une chaîne de connexion, la dernière occurrence répertoriée est utilisée dans le jeu de valeurs.
Les mots clés ne respectent pas la casse.
Avertissement
Vous devez être prudent lors de la construction d’une chaîne de connexion en fonction de l’entrée de l’utilisateur, par exemple lors de la récupération des informations d’ID utilisateur et de mot de passe d’une boîte de dialogue et de son ajout à la chaîne de connexion. L’application doit s’assurer qu’un utilisateur ne peut pas incorporer des paramètres de chaîne de connexion supplémentaires dans ces valeurs, par exemple en entrant un mot de passe en tant que « validpassword ; database= somedb » dans une tentative d’attachement à une autre base de données. Si vous utilisez le paramètre de chaîne de connexion propriétés étendues pour les connexions OLE DB, évitez de transmettre des ID d’utilisateur et des mots de passe, car vous devez éviter de stocker les ID d’utilisateur et les mots de passe en texte clair si vous le pouvez, et parce que le paramètre par défaut n’affecte Persist Security Info= false pas le Extended Properties paramètre.