Consultar dados através de parâmetros utilizando o banco de dados SQL Server 2005 e programação VB.NET

Olá a todos meu nome é Daniel Couto e estamos aqui com mais um help em relação a dados.

Bem no ultimo Artigo falava de como “Inserir dados no banco Access através do ASP 2.0 com codificação em VB.NET”. Tentei passar para todos a melhor e mais simples forma de codificar, uma vez que muitas pessoas não tem o embasamento técnico sobre a plataforma .NET, mas gostariam de desenvolver seus próprios projetos...

Recebi vários e-mails pedindo ajuda em como executar consultas diretas, sem a necessidade de usar um GridView, ou seja, colocar a informação direta em um Textbox, após a execução de um comando SELECT.

Então vamos ao trabalho, lembrando que estaremos utilizando o bando de dados SQL Server 2005:

A idéia de hoje será a seguinte: Suponhamos que você esteja desenvolvendo um sistema que possui a tabela CLIENTE e que já tenha conseguido inserir alguns dados nessa tabela... Se ainda não conseguiu, por favor, dê uma olhada no outro artigo “Inserir dados no banco Access através do ASP 2.0 com codificação em VB.NET” ok... Então em um determinado momento você deseja buscar o Nome, Sobrenome e o CPF de um determinado cliente, como proceder ??? Bem é fato que cada cliente possui sua própria chave primaria, ou seja, um valor único de difere de outros clientes.  Ex: CPF, RG ou ate mesmo um valor seqüencial criado no momento da gravação do registro. Logo quando executarmos o comando SELECT é preciso que utilizemos a clausula WHERE para passarmos esse parâmetro para que traga apenas um registro especifico.

Um exemplo padrão de consulta sql:  Select coluna_a, coluna_b, coluna_c from nome_tabela... Nessa consulta estarei trazendo dados somente da coluna a, b e c... Caso queira trazer todas as colunas da tabela basta utilizar o caracter *: Select * from nome_tabela... Agora como vamos selecionar um registro especifico, utilizamos a condição where como já havia comentado: Select coluna_a, coluna_b, coluna_c from nome_tabela where coluna_x = parametro.

Após definidos todos esses conceitos, no nosso exemplo a seguir teremos a idéia de passar a Identidade do Cliente ou o Registro Geral (RG) como queira, que é único de cada individuo como parâmetro na consulta. Para isso é necessário que se crie 04 TextBox e 01 Button conforme exemplo abaixo.

Renomeie os textbox para: txtRG, txtNome, txtSobrenome, txtCPF.

                Renomeie o button para: btnConsulta.

De um duplo clique no botão consulta e aparecerá o seguinte código:

Protected Sub btnConsultar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnConsultar.Click


‘codigo a ser inserido aqui

End Sub

Logo insira o código abaixo dentro da Sub btnConsulta.

        Dim Conexao As String = "Data Source=NomeBanco; User ID=Nome_Usuario; Password=Senha_Usuario "

        Dim sql As New StringBuilder()

        Dim conn As New SqlConnection(sConexao)

        sql.Append("select NOME, SOBRENOME, CPF from CLIENTES WHERE RG = '" + txtRG.Text + ")

        conn.Open()

        Dim cmd As New SqlCommand(sql.ToString(), conn)

        Dim dr As SqlDataReader = cmd.ExecuteReader()

        While dr.Read()

            Nome.Text = dr("NOME").ToString() ’O campo dr(“NOME”) em Maiusculo corresponde ao nome da coluna que foi solicitada na consuta acima.

            Sobrenome.Text = dr("SOBRENOME ").ToString() ’O campo dr(“ SOBRENOME”) em Maiusculo corresponde ao SOBRENOME  da coluna que foi solicitada na consuta acima.

            CPF.Text = dr("CPF").ToString() ’O campo dr(“ CPF”) em Maiusculo corresponde ao CPF da coluna que foi solicitada na consuta acima.

        End While

        dr.Close()

        conn.Close()

 

 

Após feitos todos os procedimentos o codigo deverá estar da seguinte maneira:

 

Protected Sub btnConsultar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnConsultar.Click

        Dim Conexao As String = "Data Source=NomeBanco; User ID=Nome_Usuario; Password=Senha_Usuario "

        Dim sql As New StringBuilder()

        Dim conn As New SqlConnection(sConexao)

        sql.Append("select NOME, SOBRENOME, CPF from CLIENTES WHERE RG = '" + txtRG.Text + ")

        conn.Open()

        Dim cmd As New SqlCommand(sql.ToString(), conn)

        Dim dr As SqlDataReader = cmd.ExecuteReader()

        While dr.Read()

            Nome.Text = dr("NOME").ToString()

            Sobrenome.Text = dr("SOBRENOME").ToString()

            CPF.Text = dr("CPF").ToString()

        End While

        dr.Close()

        conn.Close()
End Sub

Não sei se notaram, mas no código aparece: SqlConnection, SqlCommand e SqlDataReader... Eles são os metodos de conexão e execução com o banco de dados SQL SERVER 2005... Se voce for utilizar o banco ACCESS basta trocar por :OleDbConnection, OleDbCommand e OleDbDataReader... Já o ORACLE utiliza o seguinte: OracleConnection, OracleCommand e OracleDataReader. Lembrando que é preciso semper importar os metodos que for utilizar no inicio da pagina:

Imports System.Data.SqlClient

Imports System.Data.OracleClient
Imports System.Data.OleDb

Exemplo:

 

                Percebo ainda que uma das partes mais complicadas para um novo desenvolvedor é a parte de conexão com o Bando de Dados... Logo vou deixar aqui as strings de conexão mais utilizadas: Access, Oracle, SqlServer.

Dim c_Oracle As String = "Data Source=Nome_Banco;Persist Security Info=True;User ID=Nome_Usuario;Password=Senha;Unicode=True"

 

Dim c_SQL As String = "Data Source= Nome_Banco; User ID= Nome_Usuario; password= Senha "


Dim
c_Access As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\Nome_banco.mdb"

É isso ai... Espero poder ter ajudado a todos que sempre buscaram um help no que diz respeito a consultas simples no banco de dados.

Daniel Couto