VB.NET - Operações com dados que não retornam registros
Quando você trabalha com banco de dados muitas operações não retornam registros mas apenas uma indicação de falha ou sucesso na operação e o número de registros que foram afetados.
Este artigo vai procurar tratar estes tipos de operações usando ADO.NET e mostrar como executá-las com SQL e os provedores gerenciados ADO.
ADO.NET - Usando o objeto Command
O objeto Command da ADO.NET fornece o método ExecuteNonQuery para executar consultas que não retornam linhas (registros). Apesar de não retornar registros , qualquer parâmetro de saída ou valores retornados mapeados para parâmetros do objeto Comando são preenchidos com dados.
O método ExecuteNonQuery retorna o número de linhas afetados pelas operações de Insert , Update e Delete. Para todas as demais consultas o valor retornado é -1.
Quando uma consulta falha na execução o provedor gerenciado dispara uma exceção que você pode capturar no seu código.
Os provedores gerenciados ADO.NET possuem classes que fazem o tratamento das exceções. Esta classe de exceção é criada e disparada quando um erro é encontrado.
Executando comandos no SQL Server
No exemplo a seguir um instrução INSERT para incluir dados na tabela Categorias do banco de dados TesteWind é executada usando o método ExecuteNonQuery do objeto Command. O tratamento estruturado de exceções trata a exceção e fecha a conexão com o banco de dados:
Imports System.Data.SqlClient
Dim sqlConexao As SqlConnection |
Executando comandos com a coleção Parameters
A coleção Parameters do objeto Command é usada para definir os argumentos do procedimento armazenado ou da consulta parametrizada. Embora você possa definir um procedimento armazenado e um parâmetro Input como um comando do tipo texto (Command Text), usando a coleção Parameters você simplifica a colocação dos parâmetros no local e formato correto. Os parâmetros do tipo string contendo caracteres aspas são automaticamente formatados.
O código a seguir cria um comando que executa o procedimento armazenado IncluiCategoria no banco de dados TesteWind no SQL Server.
Imports System.Data.SqlClient Dim sqlConexao As SqlConnection Dim sqlComando As SqlCommand Dim registrosAfetados As Integer Dim parametro As SqlParameter Dim strConexao As String = "Server=(local);DataBase=TesteWind;User ID=;Password=" Try sqlConexao = New SQLConnection(strConexao) sqlComando = new SQLCommand() With sqlComando .CommandType = CommandType.StoredProcedure .CommandText = "IncluirCategoria" .Connection = sqlConexao End With parametro1 = sqlComando.Parameters.Add(New SQLParameter("@NomeCategoria",SQLDBType.NVarChar(16)) With parametro1 .Direction = ParameterDirection.Input .Value = "Livros" End With parametro2 = sqlComando.Parameters.Add(New SQLParameter("@Descricao",SQLDBType.NVarChar(15)) With parametro2 .Direction = ParameterDirection.Input .Value = "Livros e artigos" End With sqlConexao.Open() registrosAfetados = sqlComando.ExecuteNonQuery() Catch ex As Exception msgbox " Erro " & ex.Message Finally sqlConexao.Close() End Try |
É claro que você deverá criar a stored procedure no SQL Server com o nome de IncluirCategorias. Abra o Enterprise Manager e expanda as ramificações e selecione o banco de dados TesteWind ; a seguir clique com o botão direito do mouse sobre o item Stored Procedure e na janela crie o procedimento armazenado parecido com :
CREATE PROCEDURE IncluirCategoria @NomeCategoria Varchar(15) , @Descricao
VarChar(16) AS Insert into Categorias (NomeDaCategoria,Descrição) Values (@NomeCategoria,@Descricao) GO |
Com isto podemos dizer que sempre que você for executar alguma operação que não retorne registros utilize o método ExecuteNonQuery do objeto Command para obter um melhor desempenho.
Veja o artigo : VB.NET - Operações com Dados que retornam registros
Até
breve , e bons códigos .net para você...
João 6:14 Vendo, pois, aqueles homens o sinal que Jesus operara, diziam: este é verdadeiramente o profeta que havia de vir ao mundo.
João 6:15 Percebendo, pois, Jesus que estavam prestes a vir e levá-lo à força
para o fazerem rei, tornou a retirar-se para o monte, ele sozinho.
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? |
Gostou ? Compartilhe no Facebook Compartilhe no Twitter
Referências: