Partilhar via


Criar e configurar TableAdapters em aplicativos .NET Framework

Observação

A DataSet classe e as classes relacionadas são tecnologias herdadas do .NET Framework do início dos anos 2000 que permitem que os aplicativos trabalhem com dados na memória enquanto os aplicativos estão desconectados do banco de dados. As tecnologias são especialmente úteis para aplicativos que permitem aos usuários modificar dados e manter as alterações de volta ao banco de dados. Embora os conjuntos de dados sejam uma tecnologia comprovadamente bem-sucedida, a abordagem recomendada para novos aplicativos .NET é usar o Entity Framework Core. O Entity Framework fornece uma maneira mais natural de trabalhar com dados tabulares como modelos de objeto e tem uma interface de programação mais simples.

TableAdapters permitem a comunicação entre seu aplicativo e um banco de dados. Eles se conectam ao banco de dados, executam consultas ou procedimentos armazenados e retornam uma nova tabela de dados ou preenchem uma instância de classe existente DataTable com os dados retornados. TableAdapters também pode enviar dados atualizados do seu aplicativo de volta para o banco de dados.

TableAdapters são criados quando você executa uma das seguintes ações:

  • Arraste objetos de banco de dados do Gerenciador de Servidores para o Designer de Conjunto de Dados.

  • Arraste o TableAdapter objeto da Caixa de Ferramentas para uma região vazia na superfície do Designer de Conjunto de Dados e configure a fonte de dados.

  • Execute o Assistente de Configuração da Fonte de Dados e selecione o tipo de fonte de dados Banco de Dados ou Serviço Web :

    Captura de tela que mostra como selecionar o tipo de fonte de dados no Assistente de Configuração da Fonte de Dados no Visual Studio.

Para obter uma introdução a TableAdapters, consulte Preencher conjuntos de dados usando TableAdapters.

Pré-requisitos

Para concluir os procedimentos deste artigo, os seguintes pré-requisitos devem ser satisfeitos:

Observação

As instruções neste artigo ilustram a versão mais recente da experiência de desenvolvimento interativo (IDE) disponível no Visual Studio. Seu computador pode mostrar nomes ou locais diferentes para alguns dos elementos da interface do usuário. Você pode estar usando uma versão diferente do Visual Studio ou configurações de ambiente diferentes. Para obter mais informações, consulte Personalizar o IDE.

Acesse o Assistente de Configuração do TableAdapter

Você pode usar o Assistente de Configuração de TableAdapter para criar novos TableAdapters ou editar instâncias existentes e configurar suas tabelas de dados associadas.

  • Para configurar um TableAdapter existente com o assistente, clique com o botão direito do mouse na instância TableAdapter no Dataset Designer e selecione Configurar:

    Captura de tela que mostra como acessar o Assistente de Configuração do Adaptador de Tabela no Visual Studio.

  • Para criar um novo TableAdapter com o assistente, arraste o TableAdapter objecto da Caixa de Ferramentas para uma região vazia na superfície do Designer do Conjunto de Dados.

Use o assistente

Para a configuração do TableAdapter, o Assistente de Configuração do TableAdapter o orienta pelas seguintes tarefas:

  1. Configure as configurações necessárias para o TableAdapter.

    • Especifique o tipo de fonte de dados para a conexão TableAdapter.

    • Identifique os comandos a serem usados para comunicação com o banco de dados, instruções SQL ou procedimentos armazenados. Se o TableAdapter já estiver associado a uma fonte de dados, você não verá essa opção no assistente.

  2. Crie procedimentos armazenados, conforme necessário.

    Crie um novo procedimento armazenado no banco de dados subjacente, se você tiver as permissões corretas para o banco de dados. Se você não tiver as permissões necessárias, essa opção não estará disponível no assistente.

  3. Execute os procedimentos armazenados existentes, conforme necessário.

    Os procedimentos estão disponíveis para os comandos SELECT, INSERT,UPDATE e DELETE do TableAdapter. Por exemplo, o procedimento armazenado atribuído ao comando UPDATE é executado quando você chama o TableAdapter.Update() método.

  4. Mapeie parâmetros do procedimento armazenado selecionado para as colunas correspondentes na tabela de dados. Por exemplo, se o procedimento armazenado aceitar um parâmetro chamado @CompanyName que passa para a coluna CompanyName na tabela de dados, defina a Coluna de origem do parâmetro @CompanyName como CompanyName.

    Observação

    Para o comando SELECT , o procedimento armazenado é executado quando você chama o método TableAdapter Fill , por padrão. Você especifica um nome para o método Fill() na página seguinte do assistente. Quando você usa o método padrão, o código típico para executar o procedimento armazenado para o comando SELECT é TableAdapter.Fill(<TableName>). Substitua a <TableName> parte pelo nome da tabela de dados.

    Se você alterar o nome do método padrão de Fill, precisará atualizar o código para o procedimento. Substitua Fill pelo novo nome do método e use o nome real do TableAdapter. Por exemplo, para um TableAdapter nomeado CustomersTableAdapter e uma tabela de dados chamada CustomersTable, se você alterar o nome do Fill método para AddData, atualize o código para CustomersTableAdapter.AddData(CustomersTable).

    • Escolha se deseja habilitar a opção Criar métodos para enviar atualizações diretamente para o banco de dados . Quando essa opção está ativada, é equivalente a definir a GenerateDBDirectMethods propriedade como true. A opção não está disponível quando a instrução SQL original não fornece informações suficientes ou a consulta não é uma consulta atualizável. Por exemplo, quando consultas JOIN e outras consultas retornam um valor escalar único.
  5. Configure as suas preferências para as Opções Avançadas.

    • Gere os comandos INSERT,UPDATE e DELETE com base no comando SELECT definido na página Gerar instruções SQL .

    • Use concorrência otimista.

    • Atualize a tabela de dados após a execução dos comandos INSERT e UPDATE .

Configurar o método TableAdapter.Fill()

Em alguns cenários, talvez você queira alterar o esquema da tabela de dados do TableAdapter. Para concluir a ação, modifique o método primário Fill do TableAdapter. TableAdapters são criados com um método primário Fill que define o esquema da tabela de dados associada. O método primário Fill é baseado na consulta ou procedimento armazenado que você inseriu quando você configurou originalmente o TableAdapter. É o primeiro método (superior) sob a tabela de dados no Dataset Designer.

Diagrama que ilustra como usar um TableAdapter com várias consultas.

Todas as alterações feitas no método principal Fill do TableAdapter são refletidas no esquema da tabela de dados associada. Por exemplo, remover uma coluna da consulta no método principal Fill também remove a coluna da tabela de dados associada. Além disso, remover a coluna do método principal Fill remove a coluna de quaisquer consultas adicionais desse TableAdapter.

Você pode usar o TableAdapter Query Configuration Wizard para criar e editar consultas adicionais para o TableAdapter. Essas consultas adicionais devem estar em conformidade com o esquema da tabela, a menos que retornem um valor escalar. Cada consulta adicional tem um nome que você especifica.

O exemplo a seguir mostra como chamar uma consulta adicional chamada FillByCity:

CustomersTableAdapter.FillByCity(NorthwindDataSet.Customers, "Seattle")

Criar uma consulta com o assistente

Você pode criar uma nova consulta com o Assistente de Configuração de Consulta TableAdapter seguindo estas etapas:

  1. Abra seu conjunto de dados no Dataset Designer.

  2. Crie uma nova consulta com uma das seguintes ações:

    • No Dataset Designer, clique com o botão direito do mouse no TableAdapter e selecione Adicionar consulta.
    • Arraste o Query objeto do separador DataSet da Toolbox para um DataTable na superfície do Dataset Designer.
    • Arraste o Query objeto da Caixa de Ferramentas para uma região vazia na superfície Dataset Designer, que cria um TableAdapter sem um .DataTable

    Essas consultas podem retornar apenas valores únicos (escalares) ou executar comandos UPDATE,INSERT ou DELETE no banco de dados.

  3. Na tela Escolha sua conexão de dados , selecione uma conexão existente ou crie uma nova conexão para a consulta.

    Observação

    Esta tela aparece somente quando o designer não pode determinar a conexão a ser usada ou quando não há conexões disponíveis.

  4. Na tela Choose a Command Type (Escolha um tipo de comando ), configure o comando selecionando entre os seguintes métodos que buscam dados do banco de dados:

    • Usar instruções SQL: você insere uma instrução SQL para selecionar os dados do banco de dados.

    • Criar novo procedimento armazenado: o assistente cria um novo procedimento armazenado (no banco de dados) com base no comando SELECT especificado.

    • Usar procedimentos armazenados existentes: você executa um procedimento armazenado existente ao executar a consulta.

Configurar uma consulta com o assistente

Para editar uma consulta TableAdapter existente com o Assistente de Configuração de Consulta TableAdapter, clique com o botão direito do mouse na consulta e selecione Configurar. A ação de clicar com o botão direito do mouse produz um resultado diferente, dependendo do tipo de consulta selecionado:

  • Para a consulta principal de um TableAdapter, tanto o TableAdapter como o esquema DataTable são reconfigurados.

  • Em uma consulta adicional em um TableAdapter, somente a consulta selecionada é reconfigurada.

O Assistente de Configuração de TableAdapter reconfigura a definição de TableAdapter, enquanto o Assistente de Configuração de Consulta de TableAdapter reconfigura apenas a consulta selecionada.

Adicionar uma consulta global a um TableAdapter

As consultas globais são consultas SQL que retornam um único valor (escalar) ou nenhum valor. Normalmente, as funções globais executam operações de banco de dados como inserções, atualizações e exclusões. Eles também agregam informações, como uma contagem de clientes em uma tabela ou os encargos totais para todos os itens em um determinado pedido.

  1. Adicione uma consulta global arrastando o objeto Query da aba Conjunto de Dados da Caixa de Ferramentas para uma região vazia na superfície do Designer de Conjunto de Dados.

  2. Insira uma consulta que execute uma tarefa específica, como SELECT COUNT(*) AS CustomerCount FROM Customers.

    Observação

    Arrastar um Query objeto diretamente para a superfície do Dataset Designer cria um método que retorna apenas um valor escalar (único). Embora a consulta ou o procedimento armazenado selecionado possa retornar mais de um único valor, o método criado pelo assistente retorna apenas um único valor. Por exemplo, a consulta pode retornar a primeira coluna da primeira linha dos dados retornados.