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 não foi fornecido um argumento de cadeia de conexão necessário.

Exemplos

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

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

  • A cláusula "Provider = value " é necessária. No entanto, você não pode usar "Provider = MSDASQL" porque o provedor de dados .NET Framework para OLE DB não dá suporte ao MSDASQL (Provedor OLE DB para ODBC). 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, o cadeia de conexão retornado é o mesmo que o definido ConnectionStringpelo usuário, menos informações de segurança se Persist Security Info estiver definido false como (padrão). O provedor de dados .NET Framework para OLE DB não persiste nem retorna a senha em um cadeia de conexão a menos que você defina o 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 o Integrated Security palavra-chave com definido falsecomo Persist Security Info .

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

Para obter mais informações sobre cadeias de conexão, consulte Usando palavras-chave de cadeia de conexão com 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 o cadeia de conexão é definido, 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 o ConnectionString 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 um cadeia de conexão que inclua "Initial Catalog= AdventureWorks" e, em seguida, redefina o cadeia de conexão como "Provider= SQLOLEDB; Fonte de dados= MySQLServer; IntegratedSecurity=SSPI", a Database propriedade não está mais definida como AdventureWorks. (O valor do Catálogo Inicial do cadeia de conexão corresponde à Database propriedade .)

Uma validação preliminar do cadeia de conexão é executada quando a propriedade é definida. Se os Providervalores de , Connect Timeout, Persist Security Infoou OLE DB Services estiverem incluídos na cadeia de caracteres, esses valores serão verificados. Quando um aplicativo chama o Open método , o cadeia de conexão é totalmente validado. Se o 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 em um arquivo UDL (Universal Data Link). No entanto, você deve evitar fazer isso. Os arquivos UDL não são criptografados e expõem informações cadeia de conexão em texto não criptografado. 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 palavra-chave/valor separados por ponto e vírgula. O sinal de igual (=) conecta cada palavra-chave e seu valor. Para incluir valores que contenham ponto e vírgula, caractere de aspa simples 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, as aspas duplas poderão ser usadas se o valor começar com uma única aspa. Se o valor contiver caracteres de aspas simples e aspas duplas, o caractere de aspas usado para colocar o valor deve ser dobrado sempre que ele 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 um literal de cadeia de caracteres palavra-chave ou valor são preservados. As 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 um palavra-chave ou valor, ele deve ser precedido por outro sinal de igual. Por exemplo, na cadeia de conexão hipotética

"key==word=value"

o palavra-chave é "key=word" e o valor é "value".

Se um palavra-chave específico em um par palavra-chave=value ocorrer várias vezes em um 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" em uma tentativa de anexar a um banco de dados diferente. Se você usar o parâmetro 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 não criptografado, se possível, e porque a configuração padrão de Persist Security Info= false não afeta o Extended Properties parâmetro .

Aplica-se a

Confira também