Partilhar via


OleDbConnection.ConnectionString Propriedade

Definição

Obtém ou define a cadeia de caracteres usada para abrir um banco de dados.

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

Valor da propriedade

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

Implementações

Atributos

Exceções

Um argumento de cadeia de conexão inválido foi fornecido ou um argumento de cadeia de conexão necessário não foi fornecido.

Exemplos

O exemplo a seguir cria um OleDbConnection e define algumas de suas propriedades na cadeia de conexã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

Comentários

Ele ConnectionString foi projetado para corresponder o formato de cadeia de conexão OLE DB o mais próximo possível com as seguintes exceções:

  • A cláusula "Provider = value " é necessária. No entanto, você não pode usar "Provider = MSDASQL" porque o Provedor de Dados do .NET Framework para OLE DB não dá suporte ao Provedor OLE DB para ODBC (MSDASQL). Para acessar fontes de dados ODBC, use o OdbcConnection objeto que está no System.Data.Odbc namespace.

  • Ao contrário do ODBC ou do ADO, a cadeia de conexão retornada é a mesma que o conjunto ConnectionStringde usuários, menos informações de segurança se Persist Security Info estiver definida false como (padrão). O Provedor de Dados do .NET Framework para OLE DB não persiste ou retorna a senha em uma cadeia de conexão, a menos que você defina a Persist Security Info palavra-chave true como (não recomendado). Para manter um alto nível de segurança, é altamente recomendável que você use a Integrated Security palavra-chave com Persist Security Info definido como false.

Você pode usar a ConnectionString propriedade para se conectar a uma variedade de fontes de dados. O exemplo a seguir ilustra várias cadeias de conexão possíveis.

"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 Data Source palavra-chave não for especificada na cadeia de conexão, o provedor tentará se conectar ao servidor local se houver uma disponível.

Para obter mais informações sobre cadeias de conexão, consulte Usando palavras-chave de cadeia de conexão com o SQL Server Native Client.

A ConnectionString propriedade só pode ser definida quando a conexão é fechada. Muitos dos valores de cadeia de conexão têm propriedades somente leitura correspondentes. Quando a cadeia de conexão é definida, essas propriedades são atualizadas, exceto quando um erro é detectado. Nesse caso, nenhuma das propriedades é atualizada. OleDbConnection as propriedades retornam apenas as configurações contidas no ConnectionString.

Redefinir a ConnectionString conexão em uma conexão fechada redefine todos os valores de cadeia de conexão e propriedades relacionadas. Isso inclui a senha. Por exemplo, se você definir uma cadeia de conexão que inclua "Catalog= AdventureWorks inicial" e redefinir a cadeia de conexão para "Provider= SQLOLEDB; Fonte de dados= MySQLServer; IntegratedSecurity=SSPI", a Database propriedade não está mais definida como AdventureWorks. (O valor do Catálogo Inicial da cadeia de conexão corresponde à Database propriedade.)

Uma validação preliminar da cadeia de conexão é executada quando a propriedade é definida. Se os Providervalores da cadeia Connect TimeoutPersist Security Infode caracteres , ou OLE DB Services forem incluídos na cadeia de caracteres, esses valores serão verificados. Quando um aplicativo chama o Open método, a cadeia de conexão é totalmente validada. Se a cadeia de conexão contiver propriedades inválidas ou sem suporte, uma exceção em tempo de execução, como ArgumentException, será gerada.

Cuidado

É possível fornecer informações de conexão para um OleDbConnection no arquivo UDL (Link de Dados Universal), mas você deve evitar fazê-lo. Os arquivos UDL não são criptografados e expõem informações de cadeia de conexão em texto claro. Como um arquivo UDL é um recurso externo com base em arquivo para o seu aplicativo, ele não poderá ser protegido usando o .NET Framework.

O formato básico de uma cadeia de conexão inclui uma série de pares de palavra-chave/valor separados por ponto-e-vírgula. O sinal de igual (=) conecta cada palavra-chave e seu valor. Para incluir valores que contêm ponto-e-vírgula, caractere de aspa única ou caractere de aspas duplas, o valor deve ser colocado entre aspas duplas. Se o valor contiver um ponto-e-vírgula e um caractere de aspas duplas, o valor poderá ser colocado entre aspas simples. A aspa única também será útil se o valor começar com um caractere de aspas duplas. Por outro lado, a aspa dupla poderá ser usada se o valor começar com uma única aspa. Se o valor contiver caracteres de aspa única e de aspas duplas, o caractere de aspas usado para colocar o valor deve ser duplicado sempre que ocorrer dentro do valor.

Para incluir espaços anteriores ou à direita no valor da cadeia de caracteres, o valor deve ser colocado entre aspas simples ou aspas duplas. Todos os espaços à esquerda ou à direita em torno de valores inteiros, boolianos ou enumerados são ignorados, mesmo que entre aspas. No entanto, os espaços dentro de uma palavra-chave ou valor literal de cadeia de caracteres são preservados. Aspas simples ou duplas podem ser usadas em uma cadeia de conexão sem usar delimitadores (por exemplo, Data Source= my'Server ou Data Source= my"Server) a menos que um caractere de aspas seja o primeiro ou o último caractere no valor.

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

"key==word=value"

Se uma palavra-chave específica em um par chave=valor ocorrer várias vezes em uma cadeia de conexão, a última ocorrência listada será usada no conjunto de valores.

Palavras-chave não diferenciam maiúsculas de minúsculas.

Cuidado

Você deve ter cuidado ao construir uma cadeia de conexão com base na entrada do usuário, por exemplo, ao recuperar informações de ID de usuário e senha de uma caixa de diálogo e acrescentá-la à cadeia de conexão. O aplicativo deve garantir que um usuário não possa inserir parâmetros adicionais de cadeia de conexão nesses valores, por exemplo, inserindo uma senha como "validpassword; database= somedb" na tentativa de anexar a um banco de dados diferente. Se você usar o parâmetro de cadeia de conexão propriedades estendidas para conexões OLE DB, evite passar IDs de usuário e senhas porque você deve evitar armazenar IDs de usuário e senhas em texto claro, se possível, e porque a configuração Persist Security Info= false padrão não afeta o Extended Properties parâmetro.

Aplica-se a

Confira também