Conectando-se a Dados no Visual Studio

Visual Studio fornece ferramentas para conectar seu aplicativo a dados de várias fontes diferentes, como bancos de dados, serviços da Web, e objetos.Se você estiver usando ferramentas de design de dados no Visual Studio, você normalmente não precisará criar explicitamente um objeto de conexão para o formulário ou componente.O objeto de conexão é normalmente criado após a conclusão de um dos assistentes de dados ou depois de arrastar objetos de dados para seu formulário.Para conectar seu aplicativo a dados em um banco de dados, serviço Web ou objeto, execute o Assistente de Configuração de Fonte de Dados selecionando Add New Data Source da Janela Fontes de Dados.

O diagrama a seguir mostra o fluxo padrão das operações ao se conectar a dados executando uma consulta do TableAdapter para buscar dados e exibí-los em um formulário em um aplicativo do Windows.

Em algumas situações, você talvez considere conveniente criar um objeto de conexão sem a ajuda de quaisquer ferramentas de design de dados.Para obter informações sobre como criar conexões de forma programática, consulte Conectando-se a fontes de dados.

Observação:

Para obter informações sobre conexão de aplicativos da Web a dados, consulte Acessando Dados com o ASP.NET.

Criando conexões

Ao usar Visual Studio, conexões são configuradas usando o Adicionar/Modificar Conexão Caixa de diálogo Box (Geral).A caixa de diálogoAdd Connection aparece quando você está editando ou criando conexões dentro de um dos assistentes de dados ou do Server Explorer/Database Explorer ou quando você está editando propriedades de conexão na janela Properties.

Conexões de dados são configuradas automaticamente quando você executa uma das seguintes ações:

Ação

Descrição

Execute o Assistente de Configuração de Fonte de Dados.

As conexões são configuradas quando o caminho do banco de dados é escolhido no Data Source Configuration Wizard.Para obter mais informações, consulte Como: Conectar-se a Dados em um Banco de Dados.

Execute o Assistente de Configuração para o TableAdapter.

As conexões são criadas dentro do TableAdapter Configuration Wizard.Para obter mais informações, consulte Como: Crie TableAdapters.

Execute o Assistente de configuração da consulta TableAdapter.

As conexões são criadas dentro do TableAdapter Configuration Wizard.Para obter mais informações, consulte Como: Criar consultas TableAdapter.

Arraste itens da Janela Fontes de Dados para um formulário ou Designer de Componentes.

Objetos de conexão são criados quando você arrasta itens da janela Data Sources para o Windows Forms Designer ou Componente Designer.Para obter mais informações, consulte Exibindo dados em formulários em aplicativos do Windows.

Adicione novas conexões de dados a Server Explorer/Database Explorer.

Conexões de dados no Server Explorer/Database Explorer aparecem na lista de conexões disponíveis dentro dos assistentes de dados.Para obter mais informações, consulte Como: Adicionar novas conexões de dados em servidor Explorer/banco de dados Explorer.

Sequências de conexão

Todos os objetos de conexão expõem aproximadamente os mesmos membros.No entanto, os membros específicos disponíveis com um determinado objeto OleDbConnection dependem da fonte de dados à qual ele está conectado; nem todas as fontes de dados oferecem suporte a todos os membros da classe OleDbConnection.

A propriedade primária associada a um objeto de conexão é a propriedade ConnectionString.Essa propriedade consiste em uma sequência de caracteres com pares de atributo/valor para informações necessárias para fazer logon em um servidor de banco de dados e aponta para um determinado banco de dados.Uma propriedade ConnectionString típica pode ser semelhante às seguintes:

Provider=SQLOLEDB.1;Data Source=MySQLServer;Initial Catalog=NORTHWIND;Integrated Security=SSPI

Essa sequência de caracteres de conexão particular especifica que a conexão deve usar a segurança integrada do Windows.Em vez disso, uma sequência de caracteres de conexão pode incluir um nome de usuário e senha, mas isso não é recomendável, pois esses atributos são em seguida compilados em seu aplicativo resultando numa violação de segurança em potencial.

Observação de segurança:

Armazenar detalhes de sequência de conexão (como uma senha) podem afetar a segurança do seu aplicativo.Usando segurança integrada do Windows é uma maneira mais segura para controlar o acesso a um banco de dados.Para obter mais informações, consulte Proteger seqüências de caracteres de conexão.

Os pares de atributo/valor mais comuns usados por OLE DB também são representados separadamente por uma propriedade individual, como DataSource e Database.Ao trabalhar com um objeto de conexão, você pode definir a propriedade ConnectionString como uma única sequência de caracteres, ou você pode definir as propriedades de conexão individuais.(Se sua fonte de dados requer valores de sequência de caracteres de conexão que não são representados pelas propriedades individuais, então você deve configurar a propriedade ConnectionString.)

Salvando e recuperando sequências de caracteres de conexão

Sequências de caracteres de conexão podem ser armazenadas em seu aplicativo compilado ou no arquivo de configuração do aplicativo.Para obter mais informações, consulte Como: Salvar uma cadeia de conexão.

Abrindo e Fechando conexões

Os dois métodos primários para as conexões são Open e Close.O método Open usa as informações na propriedade ConnectionString para entrar em contato com a fonte de dados e estabelecer uma conexão aberta.O método Close encerra a conexão.Fechar conexões é essencial, pois a maioria das fontes de dados oferece suporte a apenas um número limitado de conexões abertas e abrir conexões utiliza recursos importantes do sistema.

Se você estiver trabalhando com TableAdapters, DataAdapters, ou DataCommands, você não precisa abrir e fechar uma conexão explicitamente.Quando você chama um método desses objetos (por exemplo, um Fill do adaptador ou o método Update), o método verifica se a conexão já está aberta.Caso contrário, o adaptador abre a conexão, executa sua lógica e fecha a conexão novamente.

Métodos como Fill somente abrem e fecham a conexão automaticamente se ela não estiver aberta.Se a conexão estiver aberta, então os métodos usam-na mas não a fecham.Isso oferece a flexibilidade para você mesmo abrir e fechar comandos de dados.Você pode fazer isso se você tiver vários adaptadores que compartilham uma conexão.Nesse caso, é ineficiente ter cada adaptador abrindo e fechando a conexão ao chamar seu método Fill.Em vez disso, você pode abrir a conexão, chamar o método Fill de cada adaptador e em seguida fechar a conexão quando você terminar.

Pooling de conexões

Os aplicativos geralmente têm diferentes usuários executando o mesmo tipo de acesso ao banco de dados.Por exemplo, muitos usuários podem estar consultando o mesmo banco de dados para obter os mesmos dados.Nesses casos, o desempenho do aplicativo pode ser aprimorado fazendo o aplicativo compartilhar, ou pool , conexões para a fonte de dados.A sobrecarga de ter cada usuário abrindo e fechando uma conexão separada pode ter um efeito adverso no desempenho do aplicativo.

Se você estiver usando o OleDbConnection, OdbcConnection, ou a classe OracleConnection, o pooling de conexões é manipulado automaticamente pelo provedor, para que você não precise gerenciá-lo.

Se você estiver usando a classe SqlConnection, o pooling de conexão é gerenciado implicitamente mas também fornece opções que permitem que você mesmo o gerencie.Para obter mais informações, consulte Using Conexão Pooling com SQL Servidor.

Transações

Objetos de conexão oferecem suporte a transações com um método BeginTransaction que cria um objeto de transação (por exemplo, um objeto SqlTransaction).O objeto de transação por sua vez oferece suporte ao métodos que permitem que você confirme ou reverta as transações.

As transações são gerenciadas no código.Para obter mais informações, consulte Performing Transactions.

O .NET Framework versão 2.0 inclui uma nova estrutura de transação, acessível através do namespace System.Transactions.Essa estrutura expõe transações de forma que está totalmente integrado no .NET Framework, incluindo o ADO.NET.Para obter mais informações, consulte Aproveitando Sistema.Transactions.

Informações de conexão e de segurança

Como abrir uma conexão envolve obter acesso a um recurso importante — um banco de dados — geralmente existem problemas de segurança ao configurar e trabalhar com uma conexão.

Como proteger o aplicativo e seu acesso à fonte de dados depende da arquitetura do seu sistema.Em um aplicativo baseado na Web, por exemplo, os usuários geralmente adquirem acesso anônimo a Serviços de Informações da Internet (IIS) e, portanto, não fornecerem credenciais de segurança.Nesse caso, o aplicativo mantém suas próprias informações de logon e as usa (em vez de qualquer informação específica do usuário) para abrir a conexão e acessar o banco de dados.

Observação de segurança:

Armazenar detalhes de sequência de conexão (como uma senha) podem afetar a segurança do seu aplicativo.Usando segurança integrada do Windows é uma maneira mais segura para controlar o acesso a um banco de dados.Para obter mais informações, consulte Proteger seqüências de caracteres de conexão.

Na intranet ou em aplicativos de várias camadas, você pode tirar proveito da opção de segurança integrada fornecida pelo Windows, IIS e SQL Server.Neste modelo, credenciais de autenticação de um usuário para a rede local também são usadas para acessar recursos de banco de dados, e nenhum nome de usuário ou senha explícitos são usados na sequência de caracteres de conexão.(Normalmente, as permissões são estabelecidas no computador servidor de banco de dados por meio de grupos, para que você não precise estabelecer permissões individuais para cada usuário que possa acessar o banco de dados.) Neste modelo, você não precisa armazenar informações de logon para a conexão de maneira alguma, e há não etapas adicionais necessárias para proteger informações de sequência de caracteres de conexão.

Para obter mais informações sobre segurança, consulte as seguintes páginas:

Conexões em tempo de design no Server Explorer/Database Explorer

Server Explorer/Database Explorer fornece uma maneira para que você crie conexões em tempo de design a fontes de dados.Isso permite que você procure fontes de dados disponíveis; exibe informações sobre tabelas, colunas e outros elementos que eles contêm; e edita e cria elementos de banco de dados.

Seu aplicativo não usa diretamente as conexões disponíveis no Server Explorer/Database Explorer.Essas conexões são usadas por Visual Studio para trabalhar com seu banco de dados em tempo de design.Para obter mais informações, consulte Visual Database Tools.

Por exemplo, no tempo de design você pode usar Server Explorer/Database Explorer para criar uma conexão a um banco de dados.Posteriormente, quando estiver criando um formulário, você pode pesquisar o banco de dados, selecionar colunas de uma tabela e arrastá-las para o DataSet Designer.Isso cria um TableAdapter no seu DataSet.Ele também cria um novo objeto de conexão (que é parte do TableAdapter recém-criado).

Informações sobre conexões em tempo de design são armazenadas no seu computador local independentemente de um projeto específico ou solução.Portanto, depois de estabelecida uma conexão em tempo de design enquanto estiver trabalhando em um aplicativo, ela aparece em Server Explorer/Database Explorer sempre que você trabalhar em Visual Studio (desde que o servidor para o qual a conexão aponta estiver disponível).Para obter mais informações sobre como usar Server Explorer/Database Explorer e criar conexões em tempo de design, consulte Como: Adicionar novas conexões de dados em servidor Explorer/banco de dados Explorer.

Consulte também

Tarefas

Como: Conectar-se a Dados em um Banco de Dados

Demonstra Passo a passo: Conectando a dados em um banco de dados

Outros recursos

Conectando-se a Dados no Visual Studio

Acessando Dados com o ASP.NET

Preparando seu aplicativo para receber dados

Buscando dados em seu aplicativo

Exibindo dados em formulários em aplicativos do Windows

Editar dados no seu aplicativo

Validando Dados

Salvando dados