Compartilhar via


Solucionando problemas de acesso a dados no Visual Studio

Este tópico lista alguns problemas comuns que surgem quando se está trabalhando com acesso a dados no Visual Studio.

Não é possível acessar banco de dados em tempo de execução que eu posso acessar em tempo de design

Essa situação é provavelmente o resultado de nome de usuário e senha passado em tempo de execução ser negado para acesso ao banco de dados.Resolução depende dos métodos de autenticação e autorização sendo usados no banco de dados, bem como a sequência de conexão.

Uma causa possível desse problema é:

  • Selecionar a opção Use a specific username and password e não selecionar a opção Allow saving password ao concluir a Adicionar/Modificar Conexão Caixa de diálogo Box (Geral).Neste cenário, você será solicitado a fornecer um nome de usuário e uma senha ao tentar se conectar à fonte de dados no tempo de design.Para conectividade em tempo de execução, você precisa incorporar funcionalidade ao aplicativo para passar o nome de usuário e a senha apropriados para a fonte de dados.

Considerações a verificar:

  • Verifique se o nome de usuário e senha que seu aplicativo está usando tem permissões adequadas para acessar a fonte de dados.

  • Verifique se o usuário possui as configurações de permissão corretas no banco de dados.

  • Verifique se há conectividade de rede entre o computador que está executando o aplicativo e a fonte de dados.

Parâmetros de saída incorretos ou ausentes são retornados quando se executa um comando SQL

Essa situação provavelmente resulta de uma configuração incorreta da propriedade Direction do parâmetro.A propriedade Direction do parâmetro está configurada com um valor definido na ParameterDirection Enumeration..

  • Verifique que a propriedade Direction do parâmetro está definida com um valor que pode receber dados (Saída para parâmetros de saída).

  • Verifique se o tipo de dados do parâmetro é o mesmo que o tipo de dados do valor de retorno esperado.

    Observação:

    Parâmetros de saída são retornados no participante do fluxo de dados; portanto, se você estiver usando o objeto DataReader (por exemplo, SqlDataReader), você deve fechá-la ou ler até o participante dos dados antes dos parâmetros de saída estarem visíveis.

Para obter mais informações sobre parâmetros de saída não sendo retornados, bem sistema autônomo um exemplo de código, pesquise por Q308051 no Suporte técnico Web site (https://support.microsoft.com).

Obtendo o erro 'O provedor SQL dados .NET (System.Data.SqlClient) requer Microsoft Data Access Components (MDAC) versão 2.6 ou posterior'

O Microsoft Windows Software Development Kit (SDK) e o pacote redistribuível do .NET Framework não incluem a instalação do MDAC.Todos os aplicativos .NET Framework que usam funcionalidade de acesso a dados exigem MDAC 2.6 ou posterior (MDAC 2,8 SP1 é recomendado).A versão mais recente do MDAC está disponível para baixar do Site da Microsoft (https://www.microsoft.com).

Como o Visual Studio instala MDAC por padrão, esse erro é mais provável de ocorrer quando implantado em um computador que não tenha Visual Studio instalado.

Quando você implanta seu aplicativo, você pode fazer a instalação verificar a versão do MDAC no computador no qual está sendo implantado .Para obter mais informações, consulte Como: Adicionar uma condição de inicialização para o Microsoft Dadosta Acessar Components.

Obtendo uma exceção inesperada na tentativa de confirmar ou reverter uma transação

Quando um erro na fonte de dados faz uma transação ser revertida imediatamente, um dos seguintes erros podem ser aumentados em seu aplicativo:

  • "A solicitação COMMIT TRANSACTION não tem correspondente BEGIN TRANSACTION"

  • "A solicitação ROLLBACK TRANSACTION não tem correspondente BEGIN TRANSACTION"

Embora esse comportamento seja de design, é sempre melhor chamar métodos que acessam fontes de dados externas (como os métodos Commit e Rollback) de uma instrução Try...Catch.Para obter mais informações, consulte Como: Use o Bloquear Try/Catch para Catch exceções (Visual Basic) ou try-catch (Referência do C#) .

Obtendo um InvalidOperationException na tentativa de remover tabelas de um dataset

Quando um dataset é vinculado a um XmlDataDocument, chamar o método Clear gera a seguinte exceção:

sistema.InvalidOperationException: Não é possível adicionar ou remover tabelas do DataSet depois que ele é mapeado para um documento XML carregado.

Limpar os dados de um DataSet vinculado a um objeto XmlDataDocument requer navegação na tabela e remoção dos objetos individuais DataRow.Para obter mais informações sobre a remoção de linhas de dados de uma tabela de dados, consulte Como: Excluir linhas em uma DataTable e DataRowCollection.RemoveAt do método.

Os rótulos de legenda não estão corretos quando se arrasta itens da janela Data Sources

Ao arrastar itens a partir da janelas Data Sources, nomes de coluna são modificadas com base em uma expressão regular padrão.Se o nome da coluna contiver um caractere minúsculo seguido por um caractere maiúsculo, um espaço é adicionado para dividir as duas palavras.Além disso, quaisquer sublinhados no nome da coluna são substituídos por espaços.Para obter mais informações sobre como controlar esse comportamento, consulte Como: Personalizar How Visual Studio Creates Captions for dados-limite Controls.

Busca e exibição de dados parecem lentos

Se seu projeto utiliza um O Componente BindingSource tente definir a RaiseListChangedEvents para Falso.Isso irá suprimir eventos ListChanged de ocorrerem na lista e pode aumentar o desempenho em datasets grandes.

Após a instalação no Windows 2000, o aplicativo falha com um aviso que MDAC 2.8 é necessário

Qualquer aplicativo que referencia o namespace System.Data requer Microsoft Data Access Components (MDAC) versão 2.8 ou versões posteriores.Na maioria dos casos, o arquivo já está instalado como parte do sistema operacional.Em computadores que executam o Windows 2000 com Service Pack 3 e anterior, você pode precisar instalar o componente com seu aplicativo.Você pode fazê-lo adicionando o componente ao pacote bootstrapper e fazendo o download do arquivo da Microsoft durante a instalação.Para obter mais informações, consulte Implantando Prerequisites (Visual Studio).

Valores gerados por banco de dados em Insert ou Update estão retornando NULL para classes LINQ to SQL

LINQ to SQL manipula automaticamente valores gerados por banco de dados para identidade (incremento automático), rowguidcol (GUID gerado por banco de dados) e colunas de carimbo de data/hora.Valores gerados por banco de dados em outros tipos de coluna irão inesperadamente resultar em um valor nulo.Para retornar os valores gerados pelo banco de dados, você deve conjunto manualmente IsDbGenerated para true e AutoSync um dos seguintes: Always, OnInsert, ou OnUpdate.

Consulte também

Conceitos

O que Há de Novo em Dados

Exibindo visão geral de dados

Outros recursos

Explicações Passo a passo sobre Dados

Guia de Introdução para acesso a dados

Conectando-se a Dados no Visual Studio

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

LINQ to SQL