Partilhar via


Criar consultas parametrizadas do TableAdapter em aplicativos do .NET Framework

Observação

Os conjuntos de dados 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 bastante úteis em aplicativos que permitem que os usuários modifiquem dados e persistam as alterações no banco de dados. Embora os conjuntos de dados tenham se mostrado uma tecnologia muito bem-sucedida, é recomendado que os novos aplicativos .NET usem o Entity Framework Core. O Entity Framework proporciona uma forma mais natural de trabalhar com dados tabulares como modelos de objeto e conta com uma interface de programação mais simples.

Uma consulta parametrizada retorna dados que atendem às condições de uma cláusula WHERE dentro da consulta. Por exemplo, você pode parametrizar uma lista de clientes para exibir apenas clientes em uma determinada cidade, adicionando WHERE City = @City ao final da instrução SQL que retorna uma lista de clientes.

Crie consultas TableAdapter parametrizadas no Designer de Conjunto de Dados. Você também pode criá-las em um aplicativos do Windows com o comando Parametrizar Fonte de Dados no menu Dados. O comando Parametrizar Fonte de Dados cria controles no formulário onde você pode inserir os valores dos parâmetros e executar a consulta.

Observação

Ao construir uma consulta parametrizada, use a notação de parâmetro específica do banco de dados em que você está codificando. Por exemplo, as fontes de dados do Access e OleDb usam o ponto de interrogação “?” para denotar parâmetros, portanto, a cláusula WHERE seria algo como: WHERE City = ?.

Criar uma consulta TableAdapter parametrizada

Para criar uma consulta parametrizada no Designer de Conjunto de Dados

  • Crie um novo TableAdapter, adicionando à instrução SQL uma cláusula WHERE com os parâmetros desejados. Para obter mais informações, consulte Criar e configurar TableAdapters.

    ou

  • Adicione uma consulta a um TableAdapter existente, adicionando à instrução SQL uma cláusula WHERE com os parâmetros desejados.

Para criar uma consulta parametrizada durante a criação de um formulário com associação de dados

  1. Selecione um controle no seu formulário que já esteja associado a um conjunto de dados. Para obter mais informações, confira Associar controles do Windows Forms a dados no Visual Studio.

  2. No menu Dados, selecione Adicionar Consulta.

  3. Preencha a caixa de diálogo Pesquisar Construtor de critérios, adicionando à instrução SQL uma cláusula WHERE com os parâmetros desejados.

Adicionar uma consulta a um formulário associado a dados existente

  1. Abra o formulário no Designer de Formulários do Windows.

  2. No menu Dados, selecione Adicionar Consulta ou Marcas Inteligentes de Dados.

    Observação

    Se Adicionar Consulta não estiver disponível no menu Dados, selecione um controle no formulário que exibe a fonte de dados no qual deseja adicionar a parametrização. Por exemplo, se o formulário exibir dados em um controle DataGridView, selecione-o. Se o formulário exibir dados em controles individuais, selecione qualquer controle associado a dados.

  3. Na área Selecionar tabela de fonte de dados, selecione a tabela à qual deseja adicionar a parametrização.

  4. Digite um nome na caixa Nome da nova consulta ao criar uma nova consulta.

    ou

    Selecione uma consulta na caixa Nome da consulta existente.

  5. Na caixa Texto da Consulta, digite uma consulta que usa parâmetros.

  6. Selecione OK.

    Um controle para inserir o parâmetro e um botão Carregar são adicionados ao formulário em um controle ToolStrip.

Consultar valores nulos

Parâmetros TableAdapter podem receber valores nulos quando você deseja consultar registros que não têm valor atual. Por exemplo, considere a seguinte consulta que tem um parâmetro ShippedDate na cláusula WHERE:

SELECT CustomerID, OrderDate, ShippedDate
FROM Orders
WHERE (ShippedDate = @ShippedDate) OR (ShippedDate IS NULL)

Se essa fosse uma consulta em um TableAdapter, você poderia consultar todos os pedidos que não foram enviados com o seguinte código:

ordersTableAdapter.FillByShippedDate(northwindDataSet.Orders, null);

Para habilitar uma consulta a aceitar valores nulos:

  1. No Designer de Conjunto de Dados, selecione a consulta TableAdapter que precisa aceitar valores de parâmetro nulos.

  2. Na janela Propriedades, selecione Parâmetros e, em seguida, selecione o botão de reticências (...) para abrir o Editor de Coleção de Parâmetros.

  3. Selecione o parâmetro que permite valores nulos e defina a propriedade AllowDbNull como true.