OleDbConnection.ConnectionString Propriedade

Definição

Obtém ou define a cadeia usada para abrir uma base de dados.

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

Valor de Propriedade

A cadeia de ligação do fornecedor OLE DB que inclui o nome da fonte de dados e outros parâmetros necessários para estabelecer a ligação inicial. O valor padrão é uma cadeia de caracteres vazia.

Implementações

Atributos

Exceções

Foi fornecido um argumento de cadeia de ligação inválido ou não foi fornecido um argumento de cadeia de ligação necessário.

Exemplos

O exemplo seguinte cria um OleDbConnection e define algumas das suas propriedades na cadeia de ligação.

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

Observações

O ConnectionString foi concebido para corresponder ao formato cadeia de ligação do OLE DB o mais fielmente possível, com as seguintes exceções:

  • A cláusula "Provider = value " é obrigatória. No entanto, não pode usar "Provider = MSDASQL" porque o .NET Framework Data Provider para OLE DB não suporta o OLE DB Provider for ODBC (MSDASQL). Para aceder às fontes de dados ODBC, use o OdbcConnection objeto que está no System.Data.Odbc espaço de nomes.

  • Ao contrário do ODBC ou do ADO, o cadeia de ligação devolvido é o mesmo que o conjunto de utilizador ConnectionString, excluindo a informação de segurança se Persist Security Info estiver definido para false (predefinido). O Data Provider do .NET Framework para OLE DB não persiste nem devolve a palavra-passe numa cadeia de ligação a menos que defina a palavra-chave Persist Security Info para true (não recomendado). Para manter um elevado nível de segurança, é fortemente recomendado que use a Integrated Security palavra-chave com Persist Security Info definido como false.

Pode usar a ConnectionString propriedade para se ligar a várias fontes de dados. O exemplo seguinte ilustra várias possíveis cadeias de ligação.

"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"

Se a palavra-chave Data Source não for especificada no cadeia de ligação, o fornecedor tentará ligar-se ao servidor local se houver disponível.

Para mais informações sobre cadeias de ligação, veja Usando Palavras-chave de Cadeias de Ligação com SQL Server Cliente Nativo.

A ConnectionString propriedade só pode ser definida quando a ligação está fechada. Muitos dos valores da cadeia de ligação têm propriedades correspondentes de apenas leitura. Quando a cadeia de ligação é definida, estas propriedades são atualizadas, exceto quando é detetado um erro. Neste caso, nenhuma das propriedades é atualizada. OleDbConnection As propriedades retornam apenas as definições que estão contidas no ConnectionString.

Reiniciar o ConnectionString numa ligação fechada reinicia todos os valores cadeia de ligação e propriedades relacionadas. Isto inclui a palavra-passe. Por exemplo, se definir uma cadeia de ligação que inclui "Initial Catalog= AdventureWorks", e depois reiniciar a cadeia de ligação para "Provider= SQLOLEDB; Data Source= MySQLServer; IntegratedSecurity=SSPI", a propriedade Database já não está definida como AdventureWorks. (O valor do Catálogo Inicial do cadeia de ligação corresponde à propriedade Database.)

Uma validação preliminar da cadeia de ligação é realizada quando a propriedade é definida. Se os valores para , ProviderConnect Timeout, Persist Security Info, ou OLE DB Services estiverem incluídos na cadeia, esses valores são verificados. Quando uma aplicação chama o método Open, o cadeia de ligação é totalmente validado. Se o cadeia de ligação contiver propriedades inválidas ou não suportadas, é gerada uma exceção em tempo de execução, como ArgumentException.

Caution

É possível fornecer informações de ligação para um OleDbConnection num ficheiro Universal Data Link (UDL); no entanto, convém evitá-lo. Os ficheiros UDL não são encriptados e expõem a informação da cadeia de ligação em texto claro. Como um arquivo UDL é um recurso baseado em arquivo externo para seu aplicativo, ele não pode ser protegido usando o .NET Framework.

O formato básico de uma cadeia de ligação inclui uma série de pares palavra-chave/valor separados por ponto e vírgula. O sinal de igual (=) liga cada palavra-chave ao seu valor. Para incluir valores que contenham um carácter de ponto e vírgula, aspas simples ou aspas duplas, o valor deve estar incluído entre aspas duplas. Se o valor contiver tanto um ponto e vírgula como um carácter de aspas duplas, o valor pode ser incluído entre aspas simples. A aspas simples também é útil se o valor começar com aspas duplas. Por outro lado, a aspas dupla pode ser usada se o valor começar com uma única aspas. Se o valor contiver caracteres de aspas simples e duplas, o carácter de aspas usado para envolver o valor deve ser duplicado sempre que este ocorre dentro do valor.

Para incluir espaços anteriores ou finais no valor da cadeia, o valor deve estar incluído entre aspas simples ou aspas duplas. Quaisquer espaços iniciais ou finais em torno de valores inteiros, booleanos ou enumerados são ignorados, mesmo que estejam entre aspas. No entanto, os espaços dentro de uma palavra-chave ou valor literal são preservados. Aspas simples ou duplas podem ser usadas dentro de um cadeia de ligação sem usar delimitadores (por exemplo, Data Source= my'Server ou Data Source= my"Server), a menos que um carácter de aspas seja o primeiro ou último caractere do valor.

Para incluir um sinal igual (=) numa palavra-chave ou valor, este deve ser precedido por outro sinal igual. Por exemplo, na seguinte cadeia de ligação hipotética, a palavra-chave é "key=word" e o valor é "value".

"key==word=value"

Se uma palavra-chave específica num par palavra-chave=valor ocorrer várias vezes numa cadeia de ligação, a última ocorrência listada é usada no conjunto de valores.

As palavras-chave não são sensíveis a maiúsculas.

Caution

Deves ter cuidado ao construir uma cadeia de ligação com base na entrada do utilizador, por exemplo, ao retirar informações de ID de utilizador e palavra-passe de uma caixa de diálogo e adicioná-las à cadeia de ligação. A aplicação deve garantir que o utilizador não pode incorporar parâmetros adicionais de cadeia de ligação nestes valores, por exemplo, introduzindo uma palavra-passe como "validpassword; database= somedb" numa tentativa de anexar a uma base de dados diferente. Se usar o parâmetro Extended Properties cadeia de ligação para ligações OLE DB, evite passar IDs de utilizador e palavras-passe porque deve evitar armazenar IDs e palavras-passe de utilizador em texto claro, se possível, e porque a definição padrão de Persist Security Info= false não afeta o parâmetro Extended Properties.

Aplica-se a

Ver também