Como criar e executar uma instrução SQL que retorna um único valor
Publicado: agosto de 2016
Para executar uma instrução SQL que retorna um único valor, você pode executar uma consulta TableAdapter que esteja configurada para executar uma instrução SQL (por exemplo, CustomersTableAdapter.CustomerCount()).
Se seu aplicativo não usar TableAdapters, chame o ExecuteScalar método em um objeto de comando, defina sua CommandType propriedade Text. ("Objeto command" se refere ao comando específico para o .NET Framework Data Provider seu aplicativo está usando. Por exemplo, se seu aplicativo estiver usando o .NET Framework Data Provider para SQL Server, o objeto de comando seria SqlCommand.)
Os exemplos a seguir mostram como executar instruções SQL que retornem valores únicos de um banco de dados usando o TableAdapters ou objetos de comando. Para obter mais informações sobre como consultar com TableAdapters e comandos, consulte Preencher datasets usando TableAdapters.
Dica
Seu computador pode mostrar diferentes nomes ou locais para alguns dos elementos de interface do usuário do Visual Studio nas instruções a seguir. A edição do Visual Studio que você possui e as configurações que você usa determinam esses elementos. Para obter mais informações, consulte Personalizando o IDE do Visual Studio.
Executar instruções SQL que retornam valores únicos usando um TableAdapter
Este exemplo mostra como criar uma consulta TableAdapter usando o Editando TableAdapters, e, em seguida, ele fornece informações sobre como declarar uma instância do TableAdapter e executar a consulta.
Para criar uma instrução SQL que retornam um único valor usando um TableAdapter
Abra um conjunto de dados de Dataset Designer. Para obter mais informações, consulte Como abrir um conjunto de dados no Designer de Conjunto de Dados.
Se você não tiver um, crie um TableAdapter. Para obter mais informações sobre como criar TableAdapters, consulte Criar e configurar TableAdapters.
Se você já tiver uma consulta no seu TableAdapter que usa uma instrução SQL para retornar um único valor, então vá para o próximo procedimento, "para"declarar uma instância do TableAdapter e executar a consulta. Caso contrário, continue na etapa 4 para criar uma nova consulta que retorna um único valor.
Clique com botão direito no TableAdapter que você deseja e use o menu de atalho para adicionar uma consulta.
O Assistente de configuração de consulta do TableAdapter é aberto.
Deixe o valor padrão de usar instruções SQL, e, em seguida, clique em próximo.
Escolha o SELECT que retorna um único valor opção e, em seguida, clique em próximo.
Digite sua instrução SQL, ou use o Query Builder para auxiliar na criação de uma e, em seguida, clique em próximo.
Forneça um nome para a consulta.
Conclua o Assistente; a consulta é adicionada ao TableAdapter.
Compile o projeto.
Para declarar uma instância do TableAdapter e executar a consulta
Declare uma instância do TableAdapter que contém a consulta que você deseja executar.
Para criar uma instância usando ferramentas em tempo de design, arraste o TableAdapter que deseja o Toolbox. (Os componentes no seu projeto agora aparecem no Toolbox sob um título que coincide com o nome do projeto.) Se o TableAdapter não aparecer no Toolbox, em seguida, você talvez precise criar seu projeto.
- ou -
Para criar uma instância no código, substitua o código a seguir com os nomes de seu DataSet e TableAdapter.
Dim tableAdapter As New DataSetTableAdapters.TableAdapter
Dica
TableAdapters não são realmente localizados dentro de suas classes dataset associadas. Cada conjunto de dados tem uma coleção correspondente de TableAdapters em seu próprio namespace. Por exemplo, se você tiver um dataset chamado SalesDataSet, em seguida, deve haver um SalesDataSetTableAdapters namespace que contém seus TableAdapters.
Chame sua consulta como você chamaria qualquer outro método no código. Sua consulta é um método no TableAdapter. Substitua o código a seguir com os nomes de seu TableAdapter e de consulta. Você também precisa passar quaisquer parâmetros necessários para sua consulta e fazer algo com o valor de retorno (por exemplo, atribuí-la a uma variável). Se você não tiver certeza se sua consulta requer parâmetros, ou que parâmetros requer, então, verifique o IntelliSense para a assinatura necessária da consulta. Dependendo se sua consulta usa parâmetros ou não, o código seria semelhante a um dos exemplos a seguir:
TableAdapter.Query()
TableAdapter.Query(Parameters)
Você provavelmente precisará atribuir o valor retornado pela consulta a uma variável. Consultas TableAdapter que retornam um único valor retornam um tipo de dados com base na consulta (em oposição ao ExecuteScalar método, que retorna um objeto). Por exemplo, se sua consulta TableAdapter seleciona uma única coluna cujo tipo de dados é um inteiro, o valor de retorno da consulta é um inteiro. Se a coluna permitir valores nulos, o valor de retorno é um dos tipos anuláveis (por exemplo, Nullable(Of Integer)). Para obter mais informações sobre tipos anuláveis, consulte Nullable. O código completo para declarar uma instância de um TableAdapter e executar uma consulta deve ser semelhante ao seguinte (Este exemplo pressupõe que o retorno do valor é um inteiro; ajuste seu código de acordo com o tipo de dados retornado pela consulta):
NorthwindDataSetTableAdapters.CustomersTableAdapter tableAdapter = new NorthwindDataSetTableAdapters.CustomersTableAdapter(); int returnValue = (int)tableAdapter.GetCustomerCount();
Dim tableAdapter As New NorthwindDataSetTableAdapters.CustomersTableAdapter() Dim returnValue As Integer returnValue = CType(tableAdapter.GetCustomerCount(), Integer)
Executar instruções SQL que retornam valores únicos usando um objeto de comando
O exemplo a seguir mostra como criar um comando e executar uma instrução SQL que retorna um único valor. Para obter informações sobre como definir e obter valores de parâmetro para um comando, consulte Como definir e obter parâmetros para objetos de comando.
Este exemplo usa o SqlCommand do objeto e requer:
Referências a System, System.Data, e System.Xml namespaces.
Uma conexão de dados denominada SqlConnection1.
Uma tabela chamada Customers na fonte de dados que SqlConnection1 conecta-se a. (Caso contrário, será necessário uma instrução SQL válida para sua fonte de dados).
Para executar uma instrução SQL que retornam um único valor usando um DataCommand
Adicione o seguinte código para um método que você deseja executar o código. Retorna um único valor chamando o ExecuteScalar método de um comando (por exemplo, ExecuteScalar). Os dados são retornados em um Object.
SqlConnection sqlConnection1 = new SqlConnection("Your Connection String"); SqlCommand cmd = new SqlCommand(); Object returnValue; cmd.CommandText = "SELECT COUNT(*) FROM Customers"; cmd.CommandType = CommandType.Text; cmd.Connection = sqlConnection1; sqlConnection1.Open(); returnValue = cmd.ExecuteScalar(); sqlConnection1.Close();
Dim sqlConnection1 As New SqlConnection("Your Connection String") Dim cmd As New SqlCommand Dim returnValue As Object cmd.CommandText = "SELECT COUNT(*) FROM Customers" cmd.CommandType = CommandType.Text cmd.Connection = sqlConnection1 sqlConnection1.Open() returnValue = cmd.ExecuteScalar() sqlConnection1.Close()
Segurança do .NET Framework
O aplicativo requer permissão para acessar o banco de dados e executar a instrução SQL.
Confira Também
SqlCommand.ExecuteScalar
OleDbCommand.ExecuteScalar
OdbcCommand.ExecuteScalar
OracleCommand.ExecuteScalar
Como criar consultas TableAdapter
Como editar consultas TableAdapter
Como: preencher um dataset com dados
Preencher datasets usando TableAdapters
Como definir e obter parâmetros para objetos de comando