OleDbConnection.ConnectionString Eigenschap
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee haalt u de tekenreeks op die wordt gebruikt om een database te openen of stelt u deze in.
public:
property System::String ^ ConnectionString { System::String ^ get(); void set(System::String ^ value); };
public:
virtual property System::String ^ ConnectionString { System::String ^ get(); void set(System::String ^ value); };
[System.Data.DataSysDescription("OleDbConnection_ConnectionString")]
public string ConnectionString { get; set; }
public override string ConnectionString { get; set; }
[System.ComponentModel.SettingsBindable(true)]
public override string ConnectionString { get; set; }
[<System.Data.DataSysDescription("OleDbConnection_ConnectionString")>]
member this.ConnectionString : string with get, set
member this.ConnectionString : string with get, set
[<System.ComponentModel.SettingsBindable(true)>]
member this.ConnectionString : string with get, set
Public Property ConnectionString As String
Public Overrides Property ConnectionString As String
Waarde van eigenschap
De OLE DB-provider verbindingsreeks die de naam van de gegevensbron bevat en andere parameters die nodig zijn om de initiële verbinding tot stand te brengen. De standaardwaarde is een lege tekenreeks.
Implementeringen
- Kenmerken
Uitzonderingen
Er is een ongeldig verbindingsreeks argument opgegeven of er is geen vereist verbindingsreeks argument opgegeven.
Voorbeelden
In het volgende voorbeeld wordt een OleDbConnection gemaakt en worden enkele eigenschappen in de verbindingsreeks ingesteld.
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
Opmerkingen
De ConnectionString is zo dicht mogelijk afgestemd op OLE DB verbindingsreeks indeling met de volgende uitzonderingen:
De component Provider =
valueis vereist. U kunt provider = MSDASQL echter niet gebruiken omdat de .NET Framework-Data Provider voor OLE DB de OLE DB-provider voor ODBC (MSDASQL) niet ondersteunt. Als u toegang wilt krijgen tot ODBC-gegevensbronnen, gebruikt u het OdbcConnection object dat zich in de System.Data.Odbc naamruimte bevindt.In tegenstelling tot ODBC of ADO is de verbindingsreeks die wordt geretourneerd hetzelfde als de gebruikersset ConnectionString, minus beveiligingsgegevens als
Persist Security Infois ingesteld opfalse(standaard). De .NET Framework-Data Provider voor OLE DB blijft het wachtwoord niet behouden of retourneert het wachtwoord niet in een verbindingsreeks, tenzij u het trefwoordPersist Security Infoinstelt optrue(niet aanbevolen). Als u een hoog beveiligingsniveau wilt behouden, wordt het sterk aanbevolen dat u hetIntegrated Securitytrefwoord gebruikt metPersist Security Infode waarde ingesteld opfalse.
U kunt de ConnectionString eigenschap gebruiken om verbinding te maken met verschillende gegevensbronnen. In het volgende voorbeeld ziet u verschillende mogelijke verbindingsreeksen.
"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"
Als het trefwoord Data Source niet is opgegeven in de verbindingsreeks, probeert de provider verbinding te maken met de lokale server als deze beschikbaar is.
Zie Trefwoorden voor verbindingsreeksen gebruiken met SQL Server Native Client voor meer informatie over verbindingsreeksen.
De ConnectionString eigenschap kan alleen worden ingesteld wanneer de verbinding is gesloten. Veel van de verbindingsreeks waarden hebben overeenkomende eigenschappen met het kenmerk Alleen-lezen. Wanneer de verbindingsreeks is ingesteld, worden deze eigenschappen bijgewerkt, behalve wanneer er een fout wordt gedetecteerd. In dit geval worden geen van de eigenschappen bijgewerkt. OleDbConnection eigenschappen retourneren alleen de instellingen die zijn opgenomen in de ConnectionString.
Als u de ConnectionString opnieuw instelt op een gesloten verbinding, worden alle verbindingsreeks waarden en gerelateerde eigenschappen opnieuw ingesteld. Dit omvat het wachtwoord. Als u bijvoorbeeld een verbindingsreeks met 'Initial Catalog= AdventureWorks' instelt en vervolgens de verbindingsreeks opnieuw instelt op 'Provider= SQLOLEDB;' Gegevensbron= MySQLServer; IntegratedSecurity=SSPI", de eigenschap Database is niet meer ingesteld op AdventureWorks. (De initiële cataloguswaarde van de verbindingsreeks komt overeen met de eigenschap Database.)
Er wordt een voorlopige validatie van de verbindingsreeks uitgevoerd wanneer de eigenschap is ingesteld. Als waarden voor de Providertekenreeks , Connect TimeoutPersist Security Infoof OLE DB Services worden opgenomen in de tekenreeks, worden deze waarden gecontroleerd. Wanneer een toepassing de methode Open aanroept, wordt de verbindingsreeks volledig gevalideerd. Als de verbindingsreeks ongeldige of niet-ondersteunde eigenschappen bevat, wordt er een runtime-uitzondering, zoals ArgumentException, gegenereerd.
Waarschuwing
Het is mogelijk om verbindingsgegevens op te geven voor een OleDbConnection in een UDL-bestand (Universal Data Link). U moet dit echter vermijden. UDL-bestanden worden niet versleuteld en bevatten verbindingsreeks informatie in duidelijke tekst. Omdat een UDL-bestand een externe bestandsresource voor uw toepassing is, kan het niet worden beveiligd met behulp van .NET Framework.
De basisindeling van een verbindingsreeks bevat een reeks trefwoord-/waardeparen, gescheiden door puntkomma's. Het gelijkteken (=) verbindt elk trefwoord en de bijbehorende waarde. Als u waarden wilt opnemen die een puntkomma, één aanhalingsteken of dubbel aanhalingsteken bevatten, moet de waarde tussen dubbele aanhalingstekens worden geplaatst. Als de waarde zowel een puntkomma als een dubbel aanhalingsteken bevat, kan de waarde tussen enkele aanhalingstekens worden geplaatst. Het enkele aanhalingsteken is ook handig als de waarde begint met een dubbel aanhalingsteken. Omgekeerd kan het dubbele aanhalingsteken worden gebruikt als de waarde begint met één aanhalingsteken. Als de waarde zowel enkele aanhalingstekens als dubbele aanhalingstekens bevat, moet het aanhalingsteken dat wordt gebruikt om de waarde in te sluiten telkens worden verdubbeld wanneer deze binnen de waarde voorkomt.
Als u voorafgaande of volgspaties in de tekenreekswaarde wilt opnemen, moet de waarde tussen enkele aanhalingstekens of dubbele aanhalingstekens worden geplaatst. Voorloop- of volgspaties rond gehele getallen, Booleaanse waarden of opsommingswaarden worden genegeerd, zelfs als deze tussen aanhalingstekens staan. Spaties binnen een letterlijk trefwoord of een letterlijke tekenreekswaarde blijven echter behouden. Enkele of dubbele aanhalingstekens kunnen worden gebruikt binnen een verbindingsreeks zonder scheidingstekens te gebruiken (bijvoorbeeld Data Source= my'Server of Data Source= my"Server) tenzij een aanhalingsteken het eerste of laatste teken in de waarde is.
Als u een gelijkteken (=) wilt opnemen in een trefwoord of waarde, moet dit worden voorafgegaan door een ander gelijkteken. In de volgende hypothetische verbindingsreeks is het trefwoord bijvoorbeeld 'key=word' en de waarde 'waarde'.
"key==word=value"
Als een specifiek trefwoord in een trefwoord=waardepaar meerdere keren voorkomt in een verbindingsreeks, wordt het laatst vermelde item gebruikt in de waardeset.
Trefwoorden zijn niet hoofdlettergevoelig.
Waarschuwing
U moet voorzichtig zijn bij het samenstellen van een verbindingsreeks op basis van gebruikersinvoer, bijvoorbeeld wanneer u gebruikers-id en wachtwoordgegevens opvragen uit een dialoogvenster en deze toevoegt aan de verbindingsreeks. De toepassing moet ervoor zorgen dat een gebruiker geen aanvullende verbindingsreeksparameters in deze waarden kan insluiten, bijvoorbeeld door een wachtwoord in te voeren als 'validpassword; database = somedb' in een poging om een andere database te koppelen. Als u de uitgebreide eigenschappen verbindingsreeks parameter voor OLE DB-verbindingen gebruikt, vermijdt u het doorgeven van gebruikers-id's en wachtwoorden, omdat u moet voorkomen dat gebruikers-id's en wachtwoorden in duidelijke tekst worden opgeslagen, en omdat de standaardinstelling van Persist Security Info= false niet van invloed is op de parameter Extended Properties.