Camada Intermediária

Esse artigo é o segundo de uma série de três (03) artigos que apresentam um exemplo prático e simples abordando o desenvolvimento em camadas em VB.NET, sabemos que a programação orientada a objetos (POO) possibilita uma abordagem simples para a utilização de dados usando objetos.

No primeiro artigo apresentamos um cenário para o desenvolvimento da aplicação e criamos o Banco de Dados com as respectivas tabelas e o mapeamento Entidade Relacionamento entre elas. Chamamos o conjunto de dados dentro de um DataSet, que denominamos como sendo nossa camada de dados.

Nesse artigo criaremos as classes da camada “2 – Camada Intermediaria” que representam a lógica de negócio (regras de negócio) e a lógica do controlador (classe que faz a interface com os dados). Essa camada, deve assegurar a confiabilidade dos dados antes que o servidor de Banco de Dados atualize ou exiba as informações ao cliente do aplicativo (camada de apresentação).

Sabe-se que de acordo com as necessidades atuais das empresas e alterações constantes na legislação, as classes facilitam a atualização das aplicações bem como permitem o reuso do código.

Nossa Camada de Negócios, isola as regras, da interface do sistema. Essa camada funciona como intermediária entre os dados da camada “1 – Camada de Dados” e a camada “3 – Camada de Apresentação” cliente do aplicativo.

Iniciaremos também a criação da última camada “3 – Camada de Apresentação”. Onde são apresentados os formulários de clientes e de pesquisa genérica.

Camadas da Aplicação Exemplo
Figura 1. Camadas da Aplicação Exemplo

Vamos começar organizando o nosso projeto. Para isso abra o projeto desenvolvido no Artigo “Desenvolvendo uma aplicação Multicamadas em Visual Basic .NET – Parte 1 Camada de Dados”.

Adicione uma nova pasta ao projeto, clique com o botão direito do mouse sobre a solução, selecione Add New Folder. Dê o nome para essa pasta de “2 – Camada Intermediaria” (sem acento).

Tela de Add New Folder

Crie uma subpasta na pasta “2 – Camada Intermediaria” chamada “2.1 – Logica Controlador” e outra “2.2 – Logica Negocios” (sem acento).

Pasta Camada Intermediaria

Vamos adicionar a nossa primeira classe, que será responsável pelo controle dos dados. Chamaremos essa classe de clsDados.vb.

Clique com o botão direito sobre “2.1 – Logica Controlador” e selecione Add .. Class .. Dê o nome de clsDados.vb para essa classe. Conforme figura.

Logica Controlador

Repita o procedimento para a criação das seguintes classes, agora na subpasta “2.2 – Logica Negocios”. Classes essas que comporão a lógica de negócio.Veja a figura

Pasta Logica Negocios

Depois de organizado o nosso projeto, vamos ao código da Classe de Dados, clsDados.vb. Classe genérica que utilizaremos para fazer a interface entre a classe de negócios e a camada de dados. Nela poderemos realizar as operações básicas de banco de dados, como: inclusão, alteração, consulta e exclusão.

Revisando: A orientação a objetos usa classes para encapsular variáveis de instância (dados) e métodos (comportamentos).

Digitar o código abaixo na classe clsDados.vb. Dê um duplo clique sobre o nome do arquivo e digite. Se preferir, é claro, copie.


Classe - Camada de Dados (Lidar diretamente com os dados)
Imports System.Data
Imports System.Data.SqlClient
Public Class ClsDados
Dim strConexao As String = My.Settings.cnPizza
Private Function AbrirBanco() As SqlConnection
    Dim cn As New SqlConnection
    cn.ConnectionString = strConexao
    cn.Open()
    Return cn
End Function
Private Sub FecharBanco(ByVal cn As SqlConnection)
    If cn.State = ConnectionState.Open Then
        cn.Close()
    End If
End Sub
 Public Sub ExecutarComando(ByVal strQuery As String)
    Dim cn As New SqlConnection()
    Try
        Abrir o banco de dados e passar os
        parametros da consulta SQL, parametros
        e ordem de execução.
        cn = AbrirBanco()
        Dim cmdCommand As New SqlCommand
        With cmdCommand
            .CommandText = strQuery.ToString
            .CommandType = CommandType.Text
            .Connection = cn
            .ExecuteNonQuery()
        End With
        Catch ex As Exception
        Throw ex
    Finally
        FecharBanco(cn)
    End Try
End Sub
Public Function RetornarDataSet(ByVal strQuery As String) As DataSet
    Dim cn As New SqlConnection()
    Try
        Abrir o banco de dados e passar os
        parametros da consulta SQL, parametros
        e ordem de execução.
        cn = AbrirBanco()
        Dim cmdCommand As New SqlCommand
        With cmdCommand
            .CommandText = strQuery.ToString
            .CommandType = CommandType.Text
            .Connection = cn
            .ExecuteNonQuery()
        End With
        Declarado um dataadapter e um dataset
        passar o comando para o dtAdapter e
        carregar o dataset com resultado da busca
        Dim dtAdapter As New SqlDataAdapter
        Dim dsDataSet As New DataSet
        With dtAdapter

            .SelectCommand = cmdCommand
            .Fill(dsDataSet)
        End With
        Retorna o Dataset
        Return dsDataSet
    Catch ex As Exception
        Throw ex
    Finally
        FecharBanco(cn)
    End Try
End Function
Public Function RetornarIdNumerico(ByVal strQuery As String) As Integer
    Dim cn As New SqlConnection()
    Try
        Abrir o banco de dados e passar os
        parametros da consulta SQL, parametros
        e ordem de execução e retorna um inteiro.
        cn = AbrirBanco()
        Dim cmdCommand As New SqlCommand
        With cmdCommand
            .CommandText = strQuery.ToString
            .CommandType = CommandType.Text
            .Connection = cn
        End With
        Dim dtReader As SqlDataReader
        dtReader = cmdCommand.ExecuteReader()
        Dim codigo As Integer
        If dtReader.Read() Then
            codigo = dtReader(0) + 1
        End If
        Return codigo
    Catch ex As Exception
        Throw ex
    Finally
        FecharBanco(cn)
    End Try
End Function
Public Function RetornarValorTotal(ByVal strQuery As String) As Decimal
    Dim cn As New SqlConnection()
    Try
        */Abrir o banco de dados e passar os parametros da consulta SQL, parametros 
        e ordem de execução e retorna um inteiro./*
        cn = AbrirBanco()
        Dim cmdCommand As New SqlCommand
        With cmdCommand
            .CommandText = strQuery.ToString
            .CommandType = CommandType.Text
            .Connection = cn
        End With
        Dim dtReader As SqlDataReader
        dtReader = cmdCommand.ExecuteReader()
        Dim ValorTotal As Decimal
        If dtReader.Read() Then
            ValorTotal = dtReader(0)
        End If
        Return ValorTotal
    Catch ex As Exception
        Throw ex
    Finally
        FecharBanco(cn)
    End Try
End Function


End Class

Vamos agora criar a classe Clientes, definindo os campos membros, atributos/propriedade e métodos. Como boa prática de programação as variáveis de instância da classe estarão definida como PRIVATE, sendo acessíveis apenas aos membros da classe. Utilizaremos métodos de acesso para exibir ou ler os dados.


Classe Cliente. clnClientes.vb
Imports System.Text
Imports System.Data.SqlClient

Public Class clnClientes
Campos membros
Private mIdCliente As Integer
Private mNomeRazao As String
Private mEndereco As String
Private mBairro As String
Private mCep As String
Private mTelefone As String
Private mCidade As String
Private mEstado As String
Private mObservacoes As String

atributos
Public Property IdCliente() As Integer
    Get
        Return mIdCliente
    End Get
    Set(ByVal value As Integer)
        mIdCliente = value
    End Set
End Property

Public Property NomeRazao() As String
    Get
        Return mNomeRazao
    End Get
    Set(ByVal value As String)
        mNomeRazao = value
    End Set
End Property

Public Property Endereco() As String
    Get
        Return mEndereco
    End Get
    Set(ByVal value As String)
        mEndereco = value
    End Set
End Property
Public Property Bairro() As String
    Get
        Return mBairro
    End Get
    Set(ByVal value As String)
        mBairro = value
    End Set
End Property
Public Property Cep() As String
    Get
        Return mCep
    End Get
    Set(ByVal value As String)
        mCep = value
    End Set
End Property
Public Property Telefone() As String
    Get
        Return mTelefone
    End Get
    Set(ByVal value As String)
        mTelefone = value
    End Set
End Property
Public Property Cidade() As String
    Get
        Return mCidade
    End Get
    Set(ByVal value As String)
        mCidade = value
    End Set
End Property
Public Property Estado() As String
    Get
        Return mEstado
    End Get
    Set(ByVal value As String)
        mEstado = value
    End Set
End Property

Public Property Observacoes() As String
    Get
        Return mObservacoes
    End Get
    Set(ByVal value As String)
        mObservacoes = value
    End Set
End Property

Métodos da Classe Clientes.


Public Sub Buscar()

Dim cSql As String

cSql = "Select * From Clientes Where IdCliente=" & mIdCliente

Dim ds As DataSet

Dim DtPizza As New ClsDados()

ds = DtPizza.RetornarDataSet(cSql)

If ds.Tables(0).Rows.Count > 0 Then

    IdCliente = ds.Tables(0).Rows(0).Item(0)

    NomeRazao = ds.Tables(0).Rows(0).Item(1)

    Endereco = ds.Tables(0).Rows(0).Item(2)

    Bairro = ds.Tables(0).Rows(0).Item(3)

    Cep = ds.Tables(0).Rows(0).Item(4)

    Telefone = ds.Tables(0).Rows(0).Item(5)

    Cidade = ds.Tables(0).Rows(0).Item(6)

    Estado = ds.Tables(0).Rows(0).Item(7)

    Observacoes = ds.Tables(0).Rows(0).Item(8)

End If

End Sub
Public Function BuscarId() As Integer

Dim cSql As String

cSql = "Select Top 1 (IdCliente) From Clientes order by IdCliente desc"

Dim IdBuscado As Integer

Dim DtPizza As New ClsDados()

IdBuscado = DtPizza.RetornarIdNumerico(cSql)

Return IdBuscado

End Function
Public Sub Editar()

Dim strQuery As New StringBuilder

strQuery.Append("Update Clientes ")

strQuery.Append("set ")

strQuery.Append("IdCliente=")

strQuery.Append(mIdCliente)

strQuery.Append(", NomeRazao=")

strQuery.Append(mNomeRazao)

strQuery.Append(", Endereco=")

strQuery.Append(mEndereco)

strQuery.Append(", Bairro=")

strQuery.Append(mBairro)

strQuery.Append(", Cep=")

strQuery.Append(mCep)

strQuery.Append(", Cidade=")

strQuery.Append(mCidade)

strQuery.Append(", Estado=")

strQuery.Append(mEstado)

strQuery.Append(", Observacoes=")

strQuery.Append(mObservacoes)

strQuery.Append("")

strQuery.Append(" where IdCliente=")

strQuery.Append(mIdCliente & ";")

Dim BancoPizza As New ClsDados()

BancoPizza.ExecutarComando(strQuery.ToString)

End Sub
Public Sub Excluir()

Dim strQuery As New StringBuilder

strQuery.Append("Delete From Clientes ")

strQuery.Append("where IdCliente=")

strQuery.Append(mIdCliente)

Dim BancoPizza As New ClsDados()

BancoPizza.ExecutarComando(strQuery.ToString)

End Sub
Public Sub Gravar()

Dim strQuery As New StringBuilder

strQuery.Append("Insert into Clientes ")

strQuery.Append(" (")

strQuery.Append("IdCliente,")

strQuery.Append("NomeRazao,")

strQuery.Append("Endereco,")

strQuery.Append("Bairro,")

strQuery.Append("Cep,")

strQuery.Append("telefone,")

strQuery.Append("Cidade,")

strQuery.Append("Estado,")

strQuery.Append("Observacoes")

strQuery.Append(") ")

strQuery.Append(" VALUES (")

strQuery.Append(mIdCliente)

strQuery.Append(", " & mNomeRazao & "")

strQuery.Append(", " & mEndereco & "")

strQuery.Append(", " & mBairro & "")

strQuery.Append(", " & mCep & "")

strQuery.Append(", " & mTelefone & "")

strQuery.Append(", " & mCidade & "")

strQuery.Append(", " & mEstado & "")

strQuery.Append(", " & mObservacoes & "")

strQuery.Append(");")

Dim BancoPizza As New ClsDados()

BancoPizza.ExecutarComando(strQuery.ToString)

End Sub
Public Function Pesquisar(ByVal Campo As String, _

ByVal Parametro As String, ByVal Valor As String, _

ByVal tipo As String) As DataSet

Dim strQuery As New StringBuilder

strQuery.Append("Select * From Clientes ")

strQuery.Append("where " & Campo & " ")

strQuery.Append(Parametro & " ")

strQuery.Append(Valor)

Dim a As String = strQuery.ToString()

Dim ds As DataSet

Dim BancoPizza As New ClsDados()

ds = BancoPizza.RetornarDataSet(strQuery.ToString)

Return ds

End Function
End Class

Como bom exercício para entendimento, você poderá implementar a Classe de Produtos, seguindo como modelo a classe de clientes. Caso queira, anexei essa classe em downloads.

Vamos voltar à organização do nosso projeto e criar uma nova pasta para organização do projeto, que conterá os objetos da Terceira e última camada de nossa aplicação, ou seja, a “3 – Camada Apresentacao” sem acento. Veja figura:

Camada Apresentacao

Arraste o Form1.vb e Renomeie-o para FrmClientes.vb.

Renomeie-o para FrmClientes.vb

Crie a interface abaixo, nomeando os controles (TextBox) conforme abaixo:

Cadastro de Clientes

Defina os nomes dos botões acrescentando o prefixo cmd nos nomes: cmdIncluir, cmdAlterar, cmdExcluir, cmdCancelar e cmdPesquisar.

Adicionando um módulo para utilização nesse projeto. Colocaremos nele as rotinas gerais. O Módulo deve estar fora da pasta “3 – Camada de Apresentação” para uma melhor organização.

Clique com o botão direito sobre o nome do projeto e selecione Add.. Module.., dê o nome para esse módulo de: modGlobal.vb.

Acrescente o código abaixo dentro do módulo criado.


Public Sub Limpar(ByRef f As GroupBox)
For Each ctl As Control In f.Controls

If TypeOf ctl Is TextBox Then ctl.Text = ""

If TypeOf ctl Is ComboBox Then ctl.Text = ""

Next ctl

End Sub
Public Sub ParaGravar(ByRef f As GroupBox)

For Each ctl As Control In f.Controls

    If ctl.Name = "cmdIncluir" Then

        ctl.Enabled = True

    End If

    If ctl.Name = "cmdCancelar" Then

        ctl.Enabled = True

    End If

    If ctl.Name = "cmdAlterar" Then

        ctl.Enabled = False

    End If

    If ctl.Name = "cmdExcluir" Then

        ctl.Enabled = False

    End If

Next

End Sub
Public Sub ParaAlterar(ByRef f As GroupBox)

For Each ctl As Control In f.Controls

    If ctl.Name = "cmdIncluir" Then

        ctl.Enabled = False

    End If

    If ctl.Name = "cmdCancelar" Then

        ctl.Enabled = False

    End If

    If ctl.Name = "cmdAlterar" Then

        ctl.Enabled = True

    End If

    If ctl.Name = "cmdExcluir" Then

        ctl.Enabled = True

    End If

Next

End Sub
Public Sub Liberar(ByRef f As GroupBox)

For Each ctl As Control In f.Controls

    If ctl.Name = "cmdPesquisar" Then

        ctl.Enabled = True

    Else

        ctl.Enabled = False

    End If

Next

End Sub

Explicação das rotinas do módulo acima. O primeiro procedimento (Limpar), recebe como parâmetro a referência do GroupBox do formulário de envio (por exemplo: Clientes) e limpa todos os controles TextBox dentro do conteiner Groupbox referenciado. O segundo procedimento (ParaGravar) e o terceiro (ParaAlterar) recebe como parâmetro a referência do GroupBox onde se encontram os botões e os trata respectivamente habilitando ou desabilitando o controle conforme o caso. O último (liberar) trata o botão pesquisar.

Agora, vamos aos códigos que responderão aos eventos dos usuários. O formulário de clientes deverá funcionar da seguinte maneira: assim que o formulário for carregado o usuário deverá digitar o código do cliente, se existir o cliente, cujo código tenha sido digitado, será exibido os seus dados no formulário e os botões: alterar, excluir e pesquisar, deverão ficar habilitados, incluir e cancelar deverão ficar desabilitado, caso não exista o campo receberá a palavra e os botões: incluir, cancelar, pesquisar ficarão habilitados e os demais desabilitados.

Código do que responderá ao evento LostFocus do IdClienteTextBox (ao perder o foco):


If IdClienteTextBox.Text.Trim = Nothing Then
    
    Exit Sub
    
End If

IdClienteTextBox.Enabled = False

Dim Clientes As New clnClientes

Clientes.IdCliente = IdClienteTextBox.Text

Clientes.Buscar()

If Clientes.NomeRazao <> "" Then
    
    IdClienteTextBox.Text = Clientes.IdCliente
    
    NomeRazaoTextBox.Text = Clientes.NomeRazao
    
    EnderecoTextBox.Text = Clientes.Endereco
    
    BairroTextBox.Text = Clientes.Bairro
    
    CepTextBox.Text = Clientes.Cep
    
    TelefoneTextBox.Text = Clientes.Telefone
    
    CidadeTextBox.Text = Clientes.Cidade
    
    EstadoTextBox.Text = Clientes.Estado
    
    ObservacoesTextBox.Text = Clientes.Observacoes
    
    ParaAlterar(GroupBox2)
    
Else
    
    IdClienteTextBox.Text = "<AUT>"
    
    NomeRazaoTextBox.Text = ""
    
    EnderecoTextBox.Text = ""
    
    BairroTextBox.Text = ""
    
    CepTextBox.Text = ""
    
    TelefoneTextBox.Text = ""
    
    CidadeTextBox.Text = ""
    
    EstadoTextBox.Text = ""
    
    ObservacoesTextBox.Text = ""
    
    ParaGravar(GroupBox2)
    
End If

Agora vamos ao código que deverá responder ao evento click do botão Incluir.


Dim incluir As New clnClientes()

If IdClienteTextBox.Text.Trim = Nothing Then
    
    MsgBox("Identificação do cliente necessária", 16, "Erro")
    
    Exit Sub
    
End If

If IdClienteTextBox.Text = "<AUT>" Then busca o último código cadastrado

Dim busca As New clnClientes()

incluir.IdCliente = busca.BuscarId()

End If

incluir.NomeRazao = NomeRazaoTextBox.Text

incluir.Endereco = EnderecoTextBox.Text

incluir.Bairro = BairroTextBox.Text

incluir.Cep = CepTextBox.Text

incluir.Telefone = TelefoneTextBox.Text

incluir.Cidade = CidadeTextBox.Text

incluir.Estado = EstadoTextBox.Text

incluir.Observacoes = ObservacoesTextBox.Text



Try

incluir.Gravar()

Catch ex As Exception

MsgBox("Ocorreu o erro: " & ex.Message)

Limpar(GroupBox1)

Exit Sub

End Try

MsgBox("Cliente Cadastrado com o código:" & incluir.IdCliente, 64, "Sucesso")

Limpar(GroupBox1)

Liberar(GroupBox2)

IdClienteTextBox.Enabled = True

Agora vamos ao código que deverá responder ao evento click do botão Alterar.


Dim alterar As New clnClientes()

If IdClienteTextBox.Text.Trim = Nothing Then
    
    MsgBox("Identificação do cliente necessária", 16, "Erro")
    
    Exit Sub
    
End If

alterar.IdCliente = IdClienteTextBox.Text

alterar.NomeRazao = NomeRazaoTextBox.Text

alterar.Endereco = EnderecoTextBox.Text

alterar.Bairro = BairroTextBox.Text

alterar.Cep = CepTextBox.Text

alterar.Telefone = TelefoneTextBox.Text

alterar.Cidade = CidadeTextBox.Text

alterar.Estado = EstadoTextBox.Text

alterar.Observacoes = ObservacoesTextBox.Text

Try

alterar.Editar()

Catch ex As Exception

MsgBox("Ocorreu o erro: " & ex.Message)

Limpar(GroupBox1)

Exit Sub

End Try

MsgBox("Cadastro Alterado com Sucesso", 64, "Aviso")

Limpar(GroupBox1)

Liberar(GroupBox2)

IdClienteTextBox.Enabled = True

Código que responderá ao evento click no botão Excluir.


Dim Excluir As New clnClientes

Excluir.IdCliente = IdClienteTextBox.Text

Excluir.NomeRazao = NomeRazaoTextBox.Text

Dim ret As Integer

ret = MsgBox("Deseja excluir: " & _

Excluir.NomeRazao & " ?", 36, "Atenção")

If ret = vbYes Then
    
    Excluir.Excluir()
    
    MsgBox("Registro Excluído com Sucesso", 64, "Aviso")
    
Else
    
    MsgBox("Operação Cancelada", 64, "Aviso")
    
End If

Limpar(GroupBox1)

Liberar(GroupBox2)

IdClienteTextBox.Enabled = True

Código que responderá ao evento click no botão Cancelar.


Limpar(GroupBox1)

Liberar(GroupBox2)

IdClienteTextBox.Enabled = True

Agora para finalizar esse artigo, adicione na pasta “3 – Camada Apresentação” um novo Formulário. Dê o nome de FrmConsulta.vb

Camada Apresentacao

Arraste para o formulário FrmConsulta os seguintes objetos 02 groupboxs, 03 labels, 02 combobox, 01 textbox, 01 button. Conforme figura:

formulário FrmConsulta

Altere as propriedades dos objetos do formulário conforme quadro:

Objeto Propriedade Valor
ComboBox1 NAME
DROPDOWNSTYLE
cmbCampo
DropDownList
ComboBox2 NAME
DROPDOWNSTYLE
cmbParam
DropDownList
TextBox1 NAME TxtBusca
Button1 NAME cmdFiltrar
DataGridView1 NAME Dgv1
Tabela 1. Os controles do tipo GroupBox não precisam alterar a propriedade NAME

Alterne para o formulário FrmClientes e adicione o código que responde ao evento click no botão pesquisar.


FrmConsulta.Text = "Pesquisa dados de Clientes"

FrmConsulta.Tag = "Clientes" Aqui guardamos o nome da tabela

FrmConsulta.Show()

Alterne agora para o formulário FrmConsulta e adicione o código para o evento Load do formulário FrmConsulta.


Dim ds As New DataSet

Dim Busca As New ClsDados

ds = Busca.RetornarDataSet("Select * From " & Me.Tag)

cmbCampo.Items.Clear()

Dim i As Integer

For i = 0 To ds.Tables(0).Columns.Count - 1

cmbCampo.Items.Add(ds.Tables(0).Columns(i).ColumnName.ToString)

Next i

Me.Dgv1.AutoGenerateColumns = True

Me.Dgv1.DataSource = ds.Tables(0)

No evento acima (Load do FrmConsulta) realizamos uma busca da tabela (genérica) pois o código servirá para qualquer consulta a tabela. Dentro do laço for, adicionamos a cada passagem no loop o nome de campo ao controle cmbCampo.

Agora assim que o usuário escolher o campo para pesquisa, criaremos uma rotina para adicionar os parâmetros possíveis para o tipo de campo selecionado.

Defina uma variável local para o todo o formulário FrmConsulta.vb, é só colocá-la após a declaração da classe, como abaixo:


Public Class FrmConsulta

Dim tipoCampo As System.Type

Agora digite o código abaixo para o evento SelectedIndexChanged, do cmbCampo.


Dim ds As New DataSet

tipoCampo = Me.Dgv1.Columns(cmbCampo.SelectedIndex).ValueType

If tipoCampo.ToString = "System.Int32" Then

    cmbParam.Items.Clear()

    cmbParam.Items.Add("=")

    cmbParam.Items.Add(">")

    cmbParam.Items.Add(">=")

    cmbParam.Items.Add("<")

    cmbParam.Items.Add("<=")

    cmbParam.Items.Add("<>")

End If

If tipoCampo.ToString = "System.String" Then

    cmbParam.Items.Clear()

    cmbParam.Items.Add("=")

    cmbParam.Items.Add("Começa com")

    cmbParam.Items.Add("Termina em")

    cmbParam.Items.Add("Tem a palavra")

End If

Nota sobre o código acima: ele deve ser melhorado para tratar todos os tipos de campos possíveis, eu só tratei os dois tipos que estão definidos na tabela de clientes.

Para finalizar o conteúdo desse artigo, vamos ao código que responderá ao evento click do Botão Pesquisar.


Dim campo As String = cmbCampo.Text

Dim parametro As String = cmbParam.Text

Dim valor As String = TxtBusca.Text

Dim tipo As String = tipoCampo.ToString

Dim ds As New DataSet



Verificar formulário origem pelo TAG do FrmConsulta

If Me.Tag = "Clientes" Then

    Dim BuscaClientes As New clnClientes

    Ps: Não há a necessidade de fazer

    tratamento para os campos numéricos

    -------------------

    Para tipos String

    If tipo = "System.String" Then

        Verificar formulário origem pelo TAG do FrmConsulta

        If parametro = "Tem a palavra" Then

            parametro = "Like "

            valor = "%" & valor & "%"

        End If

        If parametro = "=" Then

            valor = "" & valor & ""

        End If

        If parametro = "Começa com" Then

            parametro = "Like "

            valor = "" & valor & "%"

        End If

        If parametro = "Termina em" Then

            parametro = "Like "

            valor = "%" & valor & ""

        End If

    End If

    ds = BuscaClientes.Pesquisar(campo, parametro, valor, tipo)

    Me.Dgv1.AutoGenerateColumns = True

    Me.Dgv1.DataSource = ds.Tables(0)

End If

Esse foi o segundo artigo de uma série de três (03) artigos os quais apresentam um exemplo prático e simples abordando o desenvolvimento em camadas em VB.NET, sabemos que a programação orientada a objetos (POO) possibilita uma abordagem simples para a utilização de dados usando objetos.

Nesse artigo foram criadas as classes da camada “2 – Camada Intermediaria” e iniciada a construção da “3 – Camada de Apresentação”.

Gostaria de receber comentários da comunidade devmedia, para que eu possa melhorá-lo. Um abraço e até o próximo artigo.

Links Úteis

  • Curso de Xamarin: Primeiros passos:
    O Xamarin é uma plataforma para desenvolvimento de aplicações móveis dentro da plataforma .NET, utilizando o C#.
  • Curso de Lógica de Programação:
    Neste curso veremos uma introdução a algoritmos, utilizando como linguagem de apoio o Portugol. Para isso, abordaremos assuntos como descrição narrativa, fluxogramas e pseudocódigos, fundamentais para quem está iniciando na programação.
  • Como aprender PHP:
    Neste Guia de Consulta você encontrará todo o conteúdo que precisa para aprender PHP, uma linguagem de programação amplamente utilizada para a construção de aplicações web.

Saiba mais sobre Visual Basic ;)