Partilhar via


Criar consultas TableAdapter parametrizadas 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.

Uma consulta parametrizada retorna dados que atendem às condições de uma WHERE cláusula 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.

Você cria consultas TableAdapter parametrizadas no Dataset Designer. Você também pode criá-los em um aplicativo do Windows com o comando Parametrizar fonte de dados no menu Dados . O comando Parametrizar Fonte de Dados cria controles em seu formulário onde você pode inserir os valores de parâmetro e executar a consulta.

Observação

Ao construir uma consulta parametrizada, use a notação de parâmetro específica para o banco de dados com o qual você está codificando. Por exemplo, as fontes de dados Access e OleDb usam o ponto de interrogação '?' para indicar parâmetros, portanto, a WHERE cláusula ficaria assim: WHERE City = ?.

Criar uma consulta TableAdapter parametrizada

Para criar uma consulta parametrizada no Dataset Designer

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

    ou

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

Para criar uma consulta parametrizada ao criar um formulário associado a dados

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

  2. No menu Dados , selecione Adicionar consulta.

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

Para adicionar uma consulta a um formulário associado a dados existente

  1. Abra o formulário no Windows Forms Designer.

  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 à qual você deseja adicionar a parametrização. Por exemplo, se o formulário exibir dados em um DataGridView controle, selecione-o. Se o formulário exibir dados em controles individuais, selecione qualquer controle associado a dados.

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

  4. Digite um nome na caixa Novo nome da consulta se estiver criando uma nova consulta.

    ou

    Selecione uma consulta na caixa Nome da consulta existente .

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

  6. Selecione OK.

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

Consulta de valores nulos

Os 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 ShippedDate parâmetro em sua WHERE cláusula:

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

Se esta 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 permitir que uma consulta aceite valores nulos:

  1. No Dataset Designer, 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.