Preenchendo DataSets e consultando dados de uma forma geral

O típico mecanismo do Visual Studio para executar consultas Transact-SQL e para preencher DataSets é o TableAdapter.

Você pode executar instruções SQL ou procedimentos armazenados em uma fonte de dados usando Adaptadores de Tabela ou objetos de comando (por exemplo, SqlCommand).Para carregar dados em DataSets criados usando ferramentas de design no Visual Studio, use TableAdapters.Para carregar dados nos DataSets criados por programação, use adaptadores de dados.Se seu aplicativo não usar DataSets, use objetos de comando para executar instruções SQL ou procedimentos armazenados diretamente em um banco de dados.

Para obter mais informações

Consulte

Preenchendo um DataSet usando um TableAdapter

Como: Preencher um DataSet com dados

TableAdapters

Visão geral do TableAdapter

Preencher um DataSet com um adaptador de dados

Preenchendo um DataSet de um DataAdapter

Preenchendo DataSets

Se você criar um DataSet com uma ferramenta em tempo de design Visual Studio (como o DataSet Designer ou o Assistente de Configuração de Fonte de Dados), então você usa um TableAdapter para preenchê-lo.TableAdapters executam procedimentos armazenados ou instruções SQL.

Se você criar um DataSet sem ferramentas em tempo de design, você deve utilizar adaptadores de dados para preencher e atualizar os dados.(TableAdapters não são realmente classes no .NET Framework 3,5, então não são adequados para trabalhar com DataSets que tenham sido criados sem o uso de ferramentas em tempo de design.Para obter mais informações sobre carregar dados em datsets com TableAdapters ou adaptadores de dados, consulte Como: Preencher um DataSet com dados.

Consultas do TableAdapter

Você pode executar consultas TableAdapter para preencher dados em DataSets (Mais especificamente, para carregar dados para o DataTables que compõem um DataSet).Você pode criar consultas do TableAdapter usando a Assistente de configuração da consulta TableAdapter no Dataset Designer.Consultas TableAdapter aparecem como métodos nomeados num TableAdapter e são executados chamando o método TableAdapter.Para obter mais informações sobre como criar e executar consultas TableAdapter, consulte as seguintes páginas:

Objetos Command

Objetos de comando lhe dão a capacidade para executar instruções SQL e procedimentos armazenados diretamente em um banco de dados, sem precisar de um DataSet,TableAdapter, ou DataAdapter.(O termo command object refere-se ao comando específico para o Provedor de Dados .Net Framework que seu aplicativo está usando.Por exemplo, se seu aplicativo estiver usando provedor de dados do .NET Framework para SQL Server, o objeto de comando seria SqlCommand.)

Você configura comandos para consultar dados usando Instruções SQL ou Procedimentos Armazenados, definindo a propriedade CommandType do comando de dados para um dos valores na enumeração CommandType.Defina o CommandType para Text para executar instruções SQL, ou o defina para StoredProcedure para executar procedimentos armazenados.Em seguida, defina a propriedade CommandText como um Instrução SQL ou com o nome do procedimento armazenado.Em seguida, você pode executar o comando de dados chamando um dos seus métodos de execução (ExecuteReader,ExecuteScalar,ExecuteNonQuery).

Cada um dos .NET Framework Providers Dados oferece um objeto de comando otimizado para bancos de dados específicos.

Usando comandos de dados, você pode fazer o seguinte em seu aplicativo:

  • Executar comandos Select (selecionar) que retornam um resultado que você pode ler diretamente, em vez de carregá-lo no DataSet.Para ler os resultados, use um leitor de dados ( objeto OleDbDataReader, SqlDataReader, OdbcDataReader, ou OracleDataReader), que funciona como um cursor somente leitura, somente para frente para o qual você pode vincular controles.Esta é uma estratégia útil para reduzindo uso de memória e carregar dados somente para leitura muito rapidamente.

  • Executar comandos de definição de banco de dados (DDL) para criar, editar e remover tabelas, procedimentos armazenados e outras estruturas de banco de dados.(Você deve ter permissões para executar essas ações, é claro.)

  • Executar comandos para obter informações de catálogo do banco de dados.

  • Executar comandos SQL dinâmicos para atualizar, inserir ou excluir registros — em vez de atualizar tabelas DataSet e depois copiar alterações para o banco de dados.

  • Executar comandos que retornam um valor escalar (isto é, um valor único), como os resultados de uma função agregada (SUM, COUNT, AVG, e assim por diante).

  • Executar comandos que retornam dados de um banco de dados do SQL Server (versão 7.0 ou posterior) no formato XML.Um uso típico é executar uma consulta e obter novamente dados em formato XML, aplicar um transformação XSLT a ele (para converter os dados em HTML), e enviar os resultados para um navegador.

Propriedades de comando contêm todas as informações necessárias para executar um comando em um banco de dados.Isso inclui:

  • Uma conexão    O comando referencia uma conexão que ele usa para se comunicar com o banco de dados.

  • O nome ou texto de um comando    O comando inclui o texto real de uma intrução SQL ou o nome de um procedimento armazenado para executar.

  • Parâmetros    Um comando pode exigir que você passe valores de parâmetro junto com ele (parâmetros de entrada).O comando também pode retornar valores sob a forma de um valor de retorno ou valores de parâmetro de saída.Cada comando tem um conjunto de parâmetros que você pode definir ou ler individualmente para passar ou receber valores.Para obter mais informações, consulte Como: conjunto e Get Parameters for Command Objects.

Você executa um comando usando um método apropriado para os resultados que você espera que sejam retornados.Por exemplo, se você espera linhas, você chama o método ExecuteReader do comando, que retorna registros em um leitor de dados.Se você estiver executando um comando UPDATE, INSERT, ou DELETE, você chama o método ExecuteNonQuery do comando, que retorna um valor indicando o número de linhas afetadas.Se você estiver executando uma função agregada, como retornar a contagem de pedidos para um cliente, você chama o métodoExecuteScalar.

Vários conjuntos de resultados

Um uso típico de um objeto de comando é retornar uma única tabela de dados (um conjunto de linhas).Entretanto, comandos podem executar procedimentos que retornem vários conjuntos de resultados.Isso pode acontecer de maneiras diferentes.Um maneira é que o comando referencie um procedimento armazenado que retorne vários conjuntos de resultados.Como alternativa, o comando pode conter duas (ou mais) instruções ou nomes de procedimentos armazenados.Nesse caso, as instruções ou procedimentos são executados sequencialmente e retornam vários conjuntos de resultados com uma única chamada.

Se você especificar várias instruções ou procedimentos para um comando, elas devem todas ser do mesmo tipo.Por exemplo, você pode executar sucessivas instruções SQL ou sucessivos procedimentos armazenados.Entretanto, você não pode misturar chamadas de procedimentos armazenados e instruções SQL no mesmo comando.Para obter mais informações, consulte Recuperando dados usando um DataReader .

Observação:

Para Oracle, o .NET Framework Data Provider for Oracle não oferece suporte a instruções agrupadas SQL.Entretanto, ele não permite que você use vários parâmetros de saída REF CURSOR para preencher um DataSet, cada em sua própria tabela de dados.Você deve definir os parâmetros, marcá-los como parâmetros de saída, e indicar que eles são tipos de dados REF CURSOR.Observe que será possível utilizar o Update método quando o OracleDataAdapter objeto está preenchido dos parâmetros REF CURSOR em um procedimento armazenado, pois Oracle não fornece as informações necessárias para determinar qual a tabela nome e coluna nome s são quando a demonstrativo SQL é executada.

Segurança

Ao usar comandos de dados com uma propriedade CommandType definida como Text, verifique cuidadosamente as informações enviadas a partir de um cliente antes de transmití-las ao seu banco de dados.Usuários mal-intencionados podem tentar para enviar (inserir) instruções SQL modificadas ou adicionais em um esforço para obter acesso não autorizado ou danificar o banco de dados.Antes de você transferir a entrada do usuário num banco de dados, você sempre deverá verificar se as informações são válidas.Uma prática recomendada consiste em sempre usar consultas parametrizadas ou procedimentos armazenados quando possível.

Consulte também

Outros recursos

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

Recursos de dados