DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

Desenvolvendo uma aplicação Multicamadas em Visual Basic .NET – Parte 3 Final.

Término do exemplo de uma aplicação para um Disk-Pizza. Objetivo explorar o conceito de programação em multicamadas em Visual Basic 2005.

st1\:*{behavior:url(#ieooui) }

Desenvolvendo uma aplicação Multicamadas em Visual Basic .NET – Parte 3 Final.

 

Introdução:

 

Este é o terceiro e último artigo da série os quais mostram, através de um exemplo prático e simples, uma abordagem do desenvolvimento de software em camadas no Visual Basic 2005.

 

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

 

No segundo artigo foram apresentadas 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).  Sua função é 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).

 

A Camada intermediária isola as regras, da interface do sistema. Essa camada funciona como o próprio nome diz serve como intermediária entre os dados da camada “1 – Camada de Dados” e da camada “3 – Camada de Apresentação” cliente do aplicativo.

 

Ainda no segundo artigo foi iniciado a criação da última camada “3 – Camada de Apresentação”. Onde foram criados os formulários de clientes e de pesquisa genérica.

 

Nesse terceiro e último iremos continuar a definir as classes de negócio e criaremos na camada de apresentação a interface para cadastro dos pedidos de pizza.

 

1)      Com o projeto devpizza aberto, abra a pasta “2 – Camada Intermediaria”. Subpasta “2.2 – Logica de Negocio”.

 

2)      Dê um duplo clique sobre a classe “clnPedidos.vb”

 

3)      Digite o seguinte código:

 

Imports System.Data

Imports System.Data.SqlClient

Imports System.Text

 

Public Class clnPedidos

    Campos membros

    Private mIdPedido As Integer

    Private mData As Date

    Private mHora As DateTime

    Private mIdCliente As Integer

    Private mValorTotal As Decimal

 

    atributos

    Public Property IdPedido() As Integer

        Get

            Return mIdPedido

        End Get

        Set(ByVal value As Integer)

            mIdPedido = value

        End Set

    End Property

 

    Public Property Data() As String

        Get

            Return mData

        End Get

        Set(ByVal value As String)

            mData = value

        End Set

    End Property

 

    Public Property Hora() As String

        Get

            Return mHora

        End Get

        Set(ByVal value As String)

            mHora = value

        End Set

    End Property

    Public Property IdCliente() As String

        Get

            Return mIdCliente

        End Get

        Set(ByVal value As String)

            mIdCliente = value

        End Set

    End Property

    Public Property ValorTotal() As String

        Get

            Return mValorTotal

        End Get

        Set(ByVal value As String)

            mValorTotal = value

        End Set

    End Property

 

 

    Métodos da Classe Pedidos

    Public Sub Buscar()

        Dim cSql As String

        cSql = "Select * From Pedidos Where IdPedido=" & mIdPedido

        Dim ds As DataSet

        Dim DtPizza As New ClsDados()

        ds = DtPizza.RetornarDataSet(cSql)

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

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

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

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

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

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

        End If

    End Sub

 

    Public Function BuscarId() As Integer

        Dim cSql As String

        cSql = "Select Top 1 (IdPedido) From Pedidos order by IdPedido desc"

        Dim IdBuscado As Integer

        Dim DtPizza As New ClsDados()

        IdBuscado = DtPizza.RetornarIdNumerico(cSql)

        Return IdBuscado

    End Function

 

    Public Function BuscarTotal() As Decimal

        Dim cSql As String

        cSql = "Select Sum(Quantidade * ValorProduto)as Total From PedidosItens where IdPedido=" & mIdPedido

        Dim ValorBuscado As Integer

        Dim DtPizza As New ClsDados()

        ValorBuscado = DtPizza.RetornarValorTotal(cSql)

        Return ValorBuscado

    End Function

 

    Public Sub Editar()

        Dim sValorTotal As String = mValorTotal.ToString

        sValorTotal = Replace(sValorTotal, ",", ".")

        Dim strQuery As New StringBuilder

        strQuery.Append("Update Pedidos ")

        strQuery.Append("set ")

        strQuery.Append("IdPedido=")

        strQuery.Append(mIdPedido)

        strQuery.Append(", Data=")

        strQuery.Append(Format(mData, "MM/dd/yyyy"))

        strQuery.Append(", Hora=")

        strQuery.Append(mHora.ToShortTimeString)

        strQuery.Append(", IdCliente=")

        strQuery.Append(mIdCliente)

        strQuery.Append(", ValorTotal=")

        strQuery.Append(sValorTotal)

        strQuery.Append(" where IdPedido=")

        strQuery.Append(mIdPedido & ";")

        Dim BancoPizza As New ClsDados()

        BancoPizza.ExecutarComando(strQuery.ToString)

    End Sub

 

    Public Sub Excluir()

        Dim strQuery As New StringBuilder

        strQuery.Append("Delete From Pedidos ")

        strQuery.Append("where IdPedido=")

        strQuery.Append(mIdPedido)

        Dim BancoPizza As New ClsDados()

        BancoPizza.ExecutarComando(strQuery.ToString)

    End Sub

 

    Public Sub Gravar()

        Dim sValorTotal As String = mValorTotal.ToString

        sValorTotal = Replace(sValorTotal, ",", ".")

        Dim strQuery As New StringBuilder

        strQuery.Append("Insert into Pedidos ")

        strQuery.Append(" (")

        strQuery.Append("IdPedido,")

        strQuery.Append("Data,")

        strQuery.Append("Hora,")

        strQuery.Append("IdCliente,")

        strQuery.Append("ValorTotal")

        strQuery.Append(") ")

        strQuery.Append(" VALUES (")

        strQuery.Append(mIdPedido)

        strQuery.Append(", " & Format(mData, "MM/dd/yyyy") & "")

        strQuery.Append(", " & mHora.ToShortTimeString & "")

        strQuery.Append(", " & mIdCliente)

        strQuery.Append(", " & sValorTotal)

        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 PEdidos ")

        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

 

4)      Ainda na Camada 2. Dê um duplo clique sobre a classe “clnPedidosItens” e digite o código abaixo:

Imports System.Data

Imports System.Data.SqlClient

Imports System.Text

 

Public Class clnPedidosItens

    Campos membros

    Private mIdPedido As Integer

    Private mIdProduto As Integer

    Private mQuantidade As Integer

    Private mValorProduto As Decimal

 

    atributos

    Public Property IdPedido() As Integer

        Get

            Return mIdPedido

        End Get

        Set(ByVal value As Integer)

            mIdPedido = value

        End Set

    End Property

 

    Public Property IdProduto() As String

        Get

            Return mIdProduto

        End Get

        Set(ByVal value As String)

            mIdProduto = value

        End Set

    End Property

 

    Public Property Quantidade() As String

        Get

            Return mQuantidade

        End Get

        Set(ByVal value As String)

            mQuantidade = value

        End Set

    End Property

    Public Property ValorProduto() As String

        Get

            Return mValorProduto

        End Get

        Set(ByVal value As String)

            mValorProduto = value

        End Set

    End Property

 

 

    Métodos da Classe Pedidos Detalhes

    Public Sub Buscar()

        Dim cSql As String

        cSql = "Select * From PedidosItens Where IdPedido=" & mIdPedido

        Dim ds As DataSet

        Dim DtPizza As New ClsDados()

        ds = DtPizza.RetornarDataSet(cSql)

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

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

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

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

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

        End If

    End Sub

 

    Public Function BuscarId() As Integer

        Dim cSql As String

        cSql = "Select Top 1 (IdPedido) From PedidosItens order by IdPedido desc"

        Dim IdBuscado As Integer

        Dim DtPizza As New ClsDados()

        IdBuscado = DtPizza.RetornarIdNumerico(cSql)

        Return IdBuscado

    End Function

 

 

    Public Sub Editar()

        tratando o campo mValorProduto

        Dim sValorProduto As String = mValorProduto.ToString

        Dim strQuery As New StringBuilder

        strQuery.Append("Update PedidosItens ")

        strQuery.Append("set ")

        strQuery.Append("IdPedido=")

        strQuery.Append(mIdPedido)

        strQuery.Append(", IdProduto=")

        strQuery.Append(mIdProduto)

        strQuery.Append(", Quantidade=")

        strQuery.Append(mQuantidade)

        strQuery.Append(", ValorProduto=")

        strQuery.Append(sValorProduto)

        strQuery.Append(" where IdPedido=")

        strQuery.Append(mIdPedido & ";")

        Dim BancoPizza As New ClsDados()

        BancoPizza.ExecutarComando(strQuery.ToString)

    End Sub

 

    Public Sub Excluir()

        Dim strQuery As New StringBuilder

        strQuery.Append("Delete From PedidosItens ")

        strQuery.Append("where IdPedido=")

        strQuery.Append(mIdPedido)

        Dim BancoPizza As New ClsDados()

        BancoPizza.ExecutarComando(strQuery.ToString)

    End Sub

 

    Public Sub Gravar()

        tratando o campo mValorProduto

        Dim sValorProduto As String = mValorProduto.ToString

        sValorProduto = sValorProduto.Replace(",", ".")

        Dim strQuery As New StringBuilder

        strQuery.Append("Insert into PedidosItens ")

        strQuery.Append(" (")

        strQuery.Append("IdPedido,")

        strQuery.Append("IdProduto,")

        strQuery.Append("Quantidade,")

        strQuery.Append("ValorProduto")

        strQuery.Append(") ")

        strQuery.Append(" VALUES (")

        strQuery.Append(mIdPedido)

        strQuery.Append("," & mIdProduto)

        strQuery.Append("," & mQuantidade)

        strQuery.Append("," & sValorProduto)

        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 PedidosItens ")

        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

 

5)      Agora na Camada 3. Adicione um novo formulário a esse projeto e dê o nome de FrmPedidos, crie o formulário com a seguinte interface.

 

image061.jpg

 

6)      Altere a propriedade name dos botões lançar pedido, adicionar e fechar respectivamente para cmdLancar, cmdAdicionar e cmdFechar.

 

7)      Altere a propriedade name do DataGridView para DgvItens.

 

Bom, nesse ponto vamos adicionar um novo formulário, que será o principal da aplicação, onde incluiremos um menu com as opções para abrir os formulários de clientes, produtos (que não implantamos, fica por sua conta) e Lançar os pedidos.

 

8)      Na pasta “3 – Camada de Apresentacao” adicione um novo formulário, altere seu nome para “FrmPrincipal.vb”.

 

9)      Monte a interface acrescentado o menustrip conforme abaixo:

 

image062.jpg

image063.jpg

10)  Acrescente o código para chamar o formulário de Pedidos, clicando duas vezes sobre o menu pedidos. “PedidosToolStripMenuItem”

 

    Private Sub PedidosToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PedidosToolStripMenuItem.Click

        FrmPedidos.Show()

    End Sub

 

11)  Clique com o botão direito do mouse sobre o nome do projeto e selecione properties. Altere o formulário de entrada para FrmPrincipal e o modo de encerramento da aplicação conforme abaixo:

image064.jpg

 

12)  Alterne para o formulário de pedidos “FrmPedidos.vb” e acrescente o código abaixo no evento Load do formulário.

    Private Sub FrmPedidos_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        GroupBox1.Enabled = True

        GroupBox2.Enabled = False

        Dim BuscaIdPedido As New clnPedidos

        Dim id As Integer = BuscaIdPedido.BuscarId()

        se a busca retornou zero é que não há pedidos

        entao alterei o id para um.

        Nesse momento já registro o pedido para não ocorrer

        problemas em um ambiente de rede

        ou seja, outro ponto adicionar um novo pedido antes

        de fechar o corrente (aconteceria erro de chave pri-

        mária).

        If id = 0 Then id = 1

        IdPedidoTextBox.Text = id

        DataTextBox.Text = Date.Today.ToShortDateString

        HoraTextBox.Text = Date.Now.ToShortTimeString

        IdPedidoTextBox.Enabled = False

        DataTextBox.Enabled = False

        HoraTextBox.Enabled = False

        Gravando

        Dim GravParcial As New clnPedidos

        GravParcial.IdPedido = IdPedidoTextBox.Text

        GravParcial.Data = DataTextBox.Text

        GravParcial.Hora = HoraTextBox.Text

        Gravar IdCliente e ValorTotal com Zero nesse momento

        Depois será feita a alteração

        GravParcial.IdCliente = 0

        GravParcial.ValorTotal = 0

        GravParcial.Gravar()

        IdClienteTextBox.Focus()

    End Sub

 

 

13)  Acrescente o código abaixo para o evento TextChanged da caixa de texto IdClienteTextBox.

 

    Private Sub IdClienteTextBox_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles IdClienteTextBox.TextChanged

        Dim Cliente As New clnClientes

        Cliente.IdCliente = Val(IdClienteTextBox.Text)

        Cliente.Buscar()

        If Cliente.NomeRazao <> Nothing Then

            NomeRazaoLabel.Text = Cliente.NomeRazao

            EnderecoLabel.Text = Cliente.Endereco

            TelefoneLabel.Text = Cliente.Telefone

            CidadeLabel.Text = Cliente.Cidade

            EstadoLabel.Text = Cliente.Estado

        Else

            NomeRazaoLabel.Text = Nothing

            EnderecoLabel.Text = Nothing

            TelefoneLabel.Text = Nothing

            CidadeLabel.Text = Nothing

            EstadoLabel.Text = Nothing

        End If

    End Sub

 

 

O Código acima é responsável por localizar o cliente e trazer os dados para os controle Labels. Caso não exista o cliente cadastrado será “limpo” os mesmo labels.

 

Agora é hora de registrar o pedido atualizando o dado do pedido acrescentando o código do cliente caso tenha sido encontrado, se não, emite uma mensagem de alerta para o usuário.

 

14)  Acrescente o código abaixo para o evento Click do cmdLancar, botão lançamento.

    Private Sub cmdLancar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdLancar.Click

        If NomeRazaoLabel.Text = Nothing Then

            MsgBox("Cliente não cadastrado, gentileza cadastrar", 16, "Aviso")

            Exit Sub

        End If

        Dim Atualiza As New clnPedidos

        Atualiza.IdPedido = IdPedidoTextBox.Text

        Atualiza.Data = DataTextBox.Text

        Atualiza.Hora = HoraTextBox.Text

        Atualiza.IdCliente = IdClienteTextBox.Text

        Atualiza.ValorTotal = 0

        Atualiza.Editar()

        Bloqueia o GroupBox1 para evitar alterações

        Até o fechamento do pedido

        GroupBox1.Enabled = False

        GroupBox2.Enabled = True

        IdProdutoTextBox.Focus()

    End Sub

 

Nesse momento o GroupBox2 já está liberado e o foco do cursor deve aparecer na caixa de texto IdProdutoTextBox. Vamos colocar o código que responderá ao evento IdProdutoTextBox_TextChanged( ). Seu funcionamento é idêntico ao IdClienteTextBox_TextChanged( ) visto anteriormente, é responsável por mostrar os dados do produto, como descrição e preço.

 

15)  Código do IdProdutoTextBox_TextChanged( ).

 

    Private Sub IdProdutoTextBox_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles IdProdutoTextBox.TextChanged

        Dim Produto As New clnProdutos

        Produto.IdProduto = Val(IdProdutoTextBox.Text)

        Produto.Buscar()

        If Produto.Descricao <> Nothing Then

            DescricaoLabel.Text = Produto.Descricao

            ValorProdutoTextBox.Text = Produto.Preco

        Else

            DescricaoLabel.Text = Nothing

            ValorProdutoTextBox.Text = Nothing

        End If

    End Sub

 

Quando o Campo Valor do Produto perder o foco, é calculado o valor total do item. Vamos adicionar o mesmo código sendo chamado a partir do GotFocus do botão Adicionar, ou seja, caso o usuário digite o valor e clique direto no botão adicionar, ele responderá ao evento (ganhar o foco) antes do evento clique, isso fará com que não ocorra erro no lançamento. Para isso vamos adicionar um procedimento público no escopo do formulário de pedidos chamado Calculo.

 

16)  Dentro da classe FrmPedidos no final acrescente o sub procedimento abaixo para o cálculo citado.

    Public Sub Calculo()

        Dim Qtd As Decimal

        If QuantidadeTextBox.Text = Nothing Then

            Qtd = 0

        Else

            Qtd = QuantidadeTextBox.Text

        End If

        Dim Preco As Decimal

        If ValorProdutoTextBox.Text = Nothing Then

            Preco = 0

        Else

            Preco = ValorProdutoTextBox.Text

        End If

        Dim Total As Decimal = Qtd * Preco

        TotalItemTextBox.Text = FormatCurrency(Total)

 

    End Sub

 

 

17)  Código do evento ValorProdutoTextBox_LostFocus( )

 

    Private Sub ValorProdutoTextBox_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles ValorProdutoTextBox.LostFocus

         Calculo()

    End Sub

 

18)  Código repetido para evento CmdAdicionar_GotFocus( )

    Private Sub cmdAdicionar_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmdAdicionar.GotFocus

   Calculo()

    End Sub

 

19)  Agora abaixo o código que responde ao evento clique do botão adicionar. Comentado.

 

    Private Sub cmdAdicionar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdAdicionar.Click

        Gravando os itens

        Dim GravaItem As New clnPedidosItens

        GravaItem.IdPedido = IdPedidoTextBox.Text

        GravaItem.IdProduto = IdProdutoTextBox.Text

        GravaItem.Quantidade = QuantidadeTextBox.Text

        GravaItem.ValorProduto = ValorProdutoTextBox.Text

        GravaItem.Gravar()

        limpando as caixas de Texto do GroupBox2

        For Each ctl As Control In GroupBox2.Controls

            If TypeOf ctl Is TextBox Then

                ctl.Text = Nothing

            End If

        Next

        IdProdutoTextBox.Focus()

        Dim ds As New DataSet

        Dim Busca As New ClsDados

        Dim Csql As New StringBuilder

        Csql.Append("Select *,(Quantidade * ValorProduto)As Total From PedidosItens")

        Csql.Append(" where IdPedido=" & IdPedidoTextBox.Text)

        ds = Busca.RetornarDataSet(Csql.ToString)

        Me.DgvItens.AutoGenerateColumns = True

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

    End Sub

 

No exemplo acima o objeto Csql.ToString armazena como conteúdo uma query Sql que “cria” um campo calculado chamado total que armazena o total do item, obtido através da multiplicação da quantidade pelo valor do produto. E O Objeto DgvItens(DataGridView) recebe o ds.Tables(0) que é o resultado da busca na tabela com o campo calculado.

Agora para finalizar, vamos ao último código, o do botão Fechar.

 

20)  Código do botão fechar.

 

    Private Sub cmdFechar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdFechar.Click

        Dim ValorTotal As New clnPedidos

        ValorTotal.IdPedido = IdPedidoTextBox.Text

        ValorTotalTextBox.Text = FormatCurrency(ValorTotal.BuscarTotal)

        Dim Atualiza As New clnPedidos

        Atualiza.IdPedido = IdPedidoTextBox.Text

        Atualiza.Data = DataTextBox.Text

        Atualiza.Hora = HoraTextBox.Text

        Atualiza.IdCliente = IdClienteTextBox.Text

        Atualiza.ValorTotal = ValorTotalTextBox.Text

        Atualiza.Editar()

        Bloqueia o GroupBox1 e GroupBox2 para evitar alterações

        GroupBox1.Enabled = False

        GroupBox2.Enabled = False

        IdProdutoTextBox.Focus()

        MsgBox("Pedido efetuado com sucesso", 64, "Aviso")

        MsgBox("Aqui você poderia criar um rotina para imprimir o pedido")

        Fecha o Formulário de Pedido

        Me.Close()

    End Sub

 

Conclusão:

Nessa série de três artigos vimos, através de um exemplo prático e simples, uma abordagem do desenvolvimento de software em três camadas no Visual Basic 2005.

figge002.gif

No primeiro artigo foi apresentado um cenário para o desenvolvimento da aplicação e criamos o Banco de Dados com as respectivas tabelas e o mapeamento Entidade Relacionamento.

No segundo artigo foram apresentadas 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). Vimos que a Camada intermediária, isola as regras, da interface do sistema. Essa camada funciona como o próprio nome diz, serve como intermediária entre os dados da camada “1 – Camada de Dados” e da camada “3 – Camada de Apresentação” cliente do aplicativo.

Nesse terceiro e último definimos as classes de negócio e criamos na camada de apresentação a interface para cadastro dos pedidos de pizza.

 

Observação:

 

A biblioteca NHibernate baseada em .NET para persistir os objetos para bases de dados relacionais, não foi explorada nesse exemplo. O NHibernate é baseado em uma ferramenta de persistência de dados da linguagem Java, chamado Hibernate, o NHibernate tem a finalidade de persistir os objetos .NET em uma base de dados relacional subjacente. Essa camada estaria disposta entre a camada de dados e a nossa camada intermediária(lógica de controlador e lógica de negócio) em nossa aplicação. Essa seria a camada  “Persistência de Dados”. O NHibernate gera o código SQL verificando se os tipos e valores são consistentes.

 

Taí um bom assunto para um artigo futuro, tenho notado que todos os novos conceitos tem sido amplamente difundidos com o uso do C#, denotando assim, ao meu ver uma tendência de migração gradativa para essa linguagem. Como existem milhares de programadores Visual Basic ao redor do mundo, não sei se isso é uma boa idéia. O que vocês acham?

 

Entre em contato comigo: professormoraes_arroba_gmail.com

 

Um grande abraço e até o próximo artigo.

 

 

 

 

 

 

 

 

 

 

 

 





    7 COMENTÁRIOS

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.



Nelson A Sousa
Olá,
 
Houve alguma mudança no tratamento de valores do tipo data do 2005 para o 2008?
Estou usando o 2008 e não consigo gravar campo no tipo data.
 
Declarei assim:
Private cDataDigita As Date
Private cHoraDigita As DateTime
 
strQuery = "Update Tbl_Agenda SET Nome='" & cNome & "', " & _
" Telefone='" & cTelefone & "',Obs='" & cObs & "',NomeUser='" & cNomeUser & "', " & _
" DataDigita=" & Format(cDataDigita, "MM/dd/yyyy") & ", HoraDigita='" & cHoraDigita.ToShortTimeString & "' " & _

" WHERE IDAGenda= '" & cIDAgenda & "';"

 

O DataDigita não é salvo de forma nenhuma. O hora digita é salvo normalmente mas veja que usei ' aspas simples. Se fizer o mesmo em DataDigita dá erro.

[há +1 ano] - Responder

 

Flávio José
não estou conseguindo salvar campos no formulario clientes que contenha letras, apenas numeros. to usando o sql server express 2008. por favor me envie o codigo fonte para o email: jefnet-sup@hotmail.com.
[há +1 ano] - Responder

 

Autor
Depois de publicado percebi que o software "ignorou" as aspas simples no código. Se alguém tiver dificuldade, mande-me um e-mail, que eu disponibilizo o código.
[há +1 ano] - Responder

 

Benjamim Marcos De Castro Junior
Muito bom e didático o artigo! Parabéns! Favor enviar o artigo para meu e-mail: benjamim@benjamim.net
[há +1 ano] - Responder
 

Gerson Almeida De Azevedo
muito bom
poderia mandar o codigo para meu emial gerson.azevedo@ig.com.br
[há +1 ano] - Responder
 

Cláudio Duarte De Freitas
Boa tarde.
Gostei muito do artigo.
Poderia me enviar via email com o código?

claudiod@cinque.com.br

Obrigado.

Cláudio
[há +1 mês] - Responder
 

Leandro Antonio
Muito bom!

muito bem explicado, estou aprendendo vb gostaria que se fosse possivel me mandasse o codigo desta aplicação para o meu email ja que nao consegui encontrar o seu no post leandroantonio78@hotmail.com desde já agradeço.
[há +1 mês] - Responder

 



Publicidade
Autor
Marcos Roberto De Moraes

Mestre em Educação pela UNISAL.
Especialista em Administração de Sistemas de Informação pela Universidade Federal de Lavras-MG (UFLA).
Licenciado pleno em informática pela Universidade Metodista de Piracicaba (UNIMEP).
Graduado em Tecnologia em Processamento de Dados pela Unipinhal.
...


Space do autor
Estatísticas
Favorito:
Comentários:
Feedback:
Utilidade:
14   0
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2012 - Todos os Direitos Reservados a web-03