Preenchendo Datasets com dados
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.
Os tópicos a seguir fornecem detalhes para preencher Datasets com dados no Visual Studio:
Tópico |
Descrição |
---|---|
Fornece detalhes para carregar dados em DataSets usando TableAdapters e DataAdapters. |
|
Fornece detalhes para criar e executar instruções SQL que retornam linhas usando consultas TableAdapter e objetos Command. |
|
Como: Criar e executar uma instrução SQL que retorna um único valor. |
Fornece detalhes para criar e executar instruções SQL que retornam valores únicos usando consultas TableAdapter e objetos Command. |
Como: Criar e executar uma instrução de SQL que não retorna nenhum valor |
Fornece detalhes para criar e executar instruções SQL que retornam nenhum valor usando consultas TableAdapter e objetos Command. |
Como: Executar um procedimento armazenado que retorna linhas |
Fornece detalhes para executar procedimentos armazenados que retornam linhas usando consultas TableAdapter e objetos Command. |
Como: Executar um procedimento armazenado que retorna um único valor. |
Fornece detalhes para executar procedimentos armazenados que retornam único valores usando consultas TableAdapter e objetos Command. |
Como: Executar um procedimento armazenado que não retorna nenhum valor |
Fornece detalhes para executar procedimentos armazenados que retornam nenhum valor usando consultas TableAdapter e objetos Command. |
Fornece detalhes para atribuir valores aos parâmetros em consultas e procedimentos armazenados e valores de leitura nos parâmetros retornados de comandos executados. |
|
Fornece detalhes para criar um DataSet e preenchê-los com dados de um banco de dados. |
|
Demonstra Passo a passo: Leitura de dados XML em um Dataset. |
Provides details for creating a Windows application that loads XML data into a dataset and then displays the dataset in a DataGridView control. |
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 4, 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:
Como: Criar e executar uma instrução SQL que retorna um único valor.
Como: Criar e executar uma instrução de SQL que não retorna nenhum valor
Como: Executar um procedimento armazenado que retorna linhas
Como: Executar um procedimento armazenado que retorna um único valor.
Como: Executar um procedimento armazenado que não retorna nenhum valor
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 Data Providers (ADO.NET) 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: Definir e obter parâmetros para objetos de comando.
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 Retrieving Data Using a DataReader (ADO.NET).
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 você não poderá usar o método Update quando o objeto OracleDataAdapter está preenchido a partir dos parâmetros REF CURSOR para um procedimento armazenado, pois Oracle não fornece as informações necessárias para determinar quais os nomes da tabela e da coluna quando a instrução 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
Conceitos
Controles de vinculação de dados de Visual Studio
Outros recursos
Visão geral dos aplicativos de dados em Visual Studio
Conectando-se a Dados no Visual Studio
Preparando seu aplicativo para receber dados
Buscando dados em seu aplicativo
Editar dados no seu aplicativo
Ferramentas para trabalhar com fontes de dados em Visual Studio