aulavb

63
  Programação Estruturada Visual Studio 2005 VB.Net Prof. Carlos Bueno [email protected] Versão 1.2 – 15/09/2009

Upload: carlos-alberto-dos-santos

Post on 14-Jul-2015

180 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: AulaVB

5/12/2018 AulaVB - slidepdf.com

http://slidepdf.com/reader/full/aulavb 1/63

 

 

Programação Estruturada

Visual Studio 2005

VB.Net

Prof. Carlos Bueno 

[email protected] 

Versão 1.2 – 15/09/2009 

Page 2: AulaVB

5/12/2018 AulaVB - slidepdf.com

http://slidepdf.com/reader/full/aulavb 2/63

 

 Programação Estruturada – VB.Net 

1

Olá Mundo 

Quase todos os autores de livros e artigos sobre programação, seja qual for a

linguagem, utilizam um programa muito conhecido para demonstrar os primeiros

passos do desenvolvimento, o clássico “Ola Mundo...” (“Hello World!” em inglês),

que tem por objetivo exibir uma mensagem com este texto no monitor. Comigo não

será diferente, após instalar o Visual Studio 2005 você já pode desenvolver suas

aplicações em VB.Net, portanto, vamos ao nosso primeiro programa.

Nota: Antes de começarmos, vamos criar um diretório na pasta raiz do sistema, ou

do seu PenDrive , com o seguinte nome: aulasvbnet. Dentro desse diretório vamos

criar todos os nossos exercícios.

Vamos começar executando o Visual Studio 2005, ele fica localizado no menu

Iniciar > Programas> Microsoft Visual Studio 2005 .

Ao executar o programa, na tela inicial, clicar no menu File > New > Project .

Na tela seguinte escolha:

Tipo do projeto: Visual Basic

Modelo: Windows Application

Nome: OlaMundo

Localização: c:\aulasvbnet (se na sua versão não aparece essa opção, não se 

preocupe, ele irá perguntar o caminho quando salvar pela primeira vez) 

Deixe marcada a opção: Create directory for solution  

Depois clique no botão OK conforme imagem abaixo.

Page 3: AulaVB

5/12/2018 AulaVB - slidepdf.com

http://slidepdf.com/reader/full/aulavb 3/63

 

 Programação Estruturada – VB.Net 

2

Na tela seguinte, note que automaticamente ele cria um formulário de nome

Form1. Localize nesta tela as seguintes janelas: Toolbox , Solution Explorer  e

Properties . Caso já não estejam visíveis, acesse-as pelo menu View . A janela

Toolbox  possui todos os objetos disponíveis para criar seu programa. A janela

Solution Explorer  mostra todos os arquivos envolvidos no seu programa, como

formulários, classes e módulos. A janela Properties  exibe as propriedades dos

objetos selecionados.

Page 4: AulaVB

5/12/2018 AulaVB - slidepdf.com

http://slidepdf.com/reader/full/aulavb 4/63

 

 Programação Estruturada – VB.Net 

3

Com o formulário Form1 selecionado, clique na janela Toolbox e escolha o

objeto Label, depois com um clique no formulário principal, posicione o objeto label1,

mais ou menos no centro.

Selecione o Label que acabou de criar. Note que na janela Properties  está

aparecendo o nome Label1. Procure a propriedade Text do objeto Label1 e escreva“Ola Mundo...!”.

Vamos salvar nosso projeto clique no menu File > Save All , ou clique no

botão na barra de ferramentas que tem um símbolo com vários disquetes.

Para rodar seu primeiro programa clique no menu Debug > Start Debugging  ou

ainda escolha o ícone da barra de ferramentas conhecido como Play >, ou também

pressionar a tecla de funções F5.

Se você não cometeu nenhum erro, seu programa será compilado e uma

 janela com a mensagem “Ola Mundo...!” aparecerá.

Page 5: AulaVB

5/12/2018 AulaVB - slidepdf.com

http://slidepdf.com/reader/full/aulavb 5/63

 

 Programação Estruturada – VB.Net 

4

Execício: 

Para se familiarizar com as propriedades dos objetos, selecione o label1 e

procure a propriedade Font, clique no botão [...] que aparece na frente para abrir a

  janela de configuração de fonte e faça ai algumas alterações a seu gosto, depois

execute o programa para testar.

Dica: Dentro do diretório Bin\Debug tem um arquivo com a extensão .EXE que é o

executável do seu programa, que pode ser distribuído.

Page 6: AulaVB

5/12/2018 AulaVB - slidepdf.com

http://slidepdf.com/reader/full/aulavb 6/63

 

 Programação Estruturada – VB.Net 

5

Trabalhando com objetos em VB.NET (Classes) 

Tipo Projeto:  Windows Application 

Nome do Projeto:  aula002 

Local do Projeto:  c:\aulasvbnet\aula002 

Create directory for solution   Marcado 

A Classe form. Ao ser iniciado um novo projeto "Windows Application" no

VB.Net, um formulário chamado de Form1 é adicionado automaticamente ao seu

projeto. Vamos ver algumas propriedades do objeto.

1º - Rode a aplicação (F5) e veja como o formulário se apresenta, faça alguns

testes, do tipo minimizar, maximizar, redimensionar e fechar [ X ];

2º - Vamos alterar algumas propriedades e testar:

 

Propriedade Valor

Name frmPrincipal

Text Testando o Formulário

WindowsState Maximized

3º - Mude a cor do fundo para amarelo, propriedade BackColor , teste o seu

formulário.

4º - Mude a propriedade StartPosition para CenterScreen , teste e veja o que

aconteceu. Tente solucionar o problema.

5º - Vamos colocar um ícone em nosso formulário. Copie um arquivo de ícone(extensão .ico) para uma pasta de trabalho definido por você (pode ser a do próprio

projeto). Mude a propriedade Icon do formulário clicando nos três pontinhos [...] e

apontando para o arquivo do icone a ser usado.

Neste exemplo utilizei um ícone de uma engrenagem. O seu resultado deve

parecer com a figura abaixo.

Page 7: AulaVB

5/12/2018 AulaVB - slidepdf.com

http://slidepdf.com/reader/full/aulavb 7/63

 

 Programação Estruturada – VB.Net 

6

Agora vamos colocar um outro objeto dentro do objeto form:

Na janela toolbox , procure o objeto button e o inclua no formulário principal,

em seguida altere as seguintes propriedades:

Propriedade  Valor 

Name 

btnSair 

Text  &Sair (para que serve esse &?) 

BackColor  System / Control 

Execute o seu programa e clique no botão Sair para finalizar o programa. Não

funcionou? Que estranho! O que está faltando? Mais pra frente vocês irão aprender

alguma coisa sobre eventos para solucionar esse problema.

Page 8: AulaVB

5/12/2018 AulaVB - slidepdf.com

http://slidepdf.com/reader/full/aulavb 8/63

 

 Programação Estruturada – VB.Net 

7

Maximize seu formulário e veja que o local onde o botão btnSair está não

ficou muito legal, alias ficou horrível. Temos uma propriedade do objeto Button que

resolve esse problema: Anchor. 

Inverta a marcação conforme a imagem, clicando no local destacado para

marcar e clicando no local sinalizado com cinza para desmarcar.

Execute e maximize ou redimensione o formulário para poder testar esse

recurso.

Page 9: AulaVB

5/12/2018 AulaVB - slidepdf.com

http://slidepdf.com/reader/full/aulavb 9/63

 

 Programação Estruturada – VB.Net 

8

Você deve ter notado que até o momento não escrevemos uma linha de

código sequer e já temos uma aplicação windows rodando com vários recursos.

Bem vindos ao VB.NET.

Exercício:

Na pasta \bin\Debug tem um arquivo com a extensão .exe, faça algumas

alterações, na tela, a seu gosto e rode o seu aplicativo, agora você pode levar esse

arquivo aula002.exe para outra maquina e testar. Isso chama-se distribuir a

aplicação.

Distribua sua aplicação windows para um colega seu. Ah! Ele não pode fazeralterações no seu projeto. Que pena. Isso quer dizer que quem tem o código fonte é

você e apenas você pode alterar o programa.

Dicas:

- O nome dos objetos é definido por você, mas os programadores usam

algumas simbologias para facilitar a identificação dos objetos no código fonte.

Por exemplo:

btn - Objeto button

frm - Objeto form

lbl - Objeto label

txt - Objeto text

mnu - objeto menu

E assim por diante, isso não é uma regra, mas é bastante utilizado.

Page 10: AulaVB

5/12/2018 AulaVB - slidepdf.com

http://slidepdf.com/reader/full/aulavb 10/63

 

 Programação Estruturada – VB.Net 

9

Trabalhando com eventos 

Tipo Projeto:  Windows Application 

Nome do Projeto:  eventos 

Local do Projeto:  c:\aulasvbnet\aula003 

Eventos - Os eventos são funções executadas em um determinado momento,

dependendo de seu tipo. Por exemplo, o evento Load do formulário é executado

assim que o formulário é executado (antes deste ser exibido), o evento MouseDown  

quanto o botão é pressionado, MouseUp quando o botão é solto e assim por diante.Nem todos os componentes possuem os mesmos eventos. O evento Load ,

por exemplo, é usado apenas no form.

Abaixo segue uma relação dos principais eventos e suas respectivas funções:

-  Click: É um evento que executa quando alguém clica sobre algum objeto.

-  Dblclick:  Executa ações quando alguém clica duas vezes sobre algum

objeto.-  Resize:  Executa algum comando pré-estabelecido quando o usuário

redimensiona o form.

-  Load: Executa ordens sempre que o programa for carregado na memória.

-  Gotfocus: Quando um objeto apenas ganha o foco (fica selecionado).

-  Lostfocus:  Executa algum comando quando o foco passa para um outro

objeto.

-

  Keypress: Quando é pressionada alguma tecla ele é acionado.-  Mousemove: Sempre que se move o mouse.

Não se preocupe com esses nomes todos, vamos aprendendo a usar aos pouco,

não é preciso decorar nada.

Page 11: AulaVB

5/12/2018 AulaVB - slidepdf.com

http://slidepdf.com/reader/full/aulavb 11/63

 

 Programação Estruturada – VB.Net 

10

Vamos a um exemplo prático no projeto que foi criado para essa parte:

Objetos  Propriedade = Valor 

Form 

Name = frmPrincipal

Text = Trabalhando com Eventos

Button1 

Name = btnSair

Text = &Sair

Coloque o seguinte código no evento click do botão: btnsair

Me.Close()

Teste o programa e veja o evento click funcionando.

Continuando. No evento DoubleClick  do formulário frmPrincipal, coloque o

seguinte código:

Messagebox.Show("Clicando duas vezes no formulário!")

Execute e dê um duplo clique no formulário.

No evento FormClosing  do formulário frmPrincipal, coloque o seguinte

código:

MessageBox.Show("Estou Saindo!!!")

Execute e dê um duplo clique no [X] ou no botão Sair.

Dicas:

- Para colocar o código em um evento click do botão, em tempo de criação

do projeto, basta dar dois cliques no botão e você vai parar no editor de código já

com o evento criado.

Page 12: AulaVB

5/12/2018 AulaVB - slidepdf.com

http://slidepdf.com/reader/full/aulavb 12/63

 

 Programação Estruturada – VB.Net 

11

Exercício:

Vamos a mais um exemplo usando evento, e aproveitamos para aprofundarnossos conhecimentos de propriedades.

Crie um novo projeto em VB.NET com as especificações abaixo e coloque os

seguintes objetos no formulário:

Tipo Projeto:  Windows Application 

Nome do Projeto:  exeventos 

Local do Projeto:  c:\aulasvbnet\aula003 

 

Objetos Propriedade = Valor

FormName = frmPrincipal

Text = Trabalhando com Eventos

ButtonName = btnIncluir

Text = &Incluir

TextBoxName = txtNome

Text =

Label Text = Nome:

Listbox Name = lstNomes

Page 13: AulaVB

5/12/2018 AulaVB - slidepdf.com

http://slidepdf.com/reader/full/aulavb 13/63

 

 Programação Estruturada – VB.Net 

12

No evento Load do formulário vamos colocar o seguinte código:

txtNome.Text = ""Me.lstNomes.Items.Clear()

E no evento Click do botão incluir, o seguinte código:

lstNomes.Items.Add(txtNome.Text)  

Teste o seu exercício, ele deve estar como na figura abaixo:

Dicas:

- Seria bom incluir uma instrução para limpar o texto já processado e fazer ofoco da próxima ação parar no local de digitação. Para isso inclua o seguinte código

no botão incluir:

txtNome.Text = ""

txtNome.Focus()

Page 14: AulaVB

5/12/2018 AulaVB - slidepdf.com

http://slidepdf.com/reader/full/aulavb 14/63

 

 Programação Estruturada – VB.Net 

13

Trabalhando com Variáveis, constantes e

outros conceitos 

Constantes, Variáveis e Tipos de Dados

Variáveis e constantes são os elementos básicos que um programa manipula.

Uma variável é um espaço reservado na memória do computador para armazenar

um tipo de dado determinado.

Variáveis devem receber nomes para poderem ser referenciadas e

modificadas quando necessário. Um programa deve conter declarações queespecificam de que tipo são as variáveis que ele utilizará e às vezes um valor inicial.

Os tipos podem ser, por exemplo: inteiros, reais, caracteres, etc. As expressões

combinam variáveis e constantes para calcular novos valores.

Constantes

Constante é um determinado valor fixo que não se modifica ao longo do

tempo durante a execução de um programa. Conforme o seu tipo, a constante éclassificada como sendo numérica, lógica e literal.

Exemplo de constantes:

Variáveis

Variável é a representação simbólica dos elementos de certo conjunto. Cada

variável corresponde a uma posição de memória, cujo conteúdo pode se alterado ao

longo do tempo durante a execução de um programa. Embora uma variável (um

endereço de memória) possa assumir diferentes valores, ela só pode armazenar um

valor a cada instante.

Page 15: AulaVB

5/12/2018 AulaVB - slidepdf.com

http://slidepdf.com/reader/full/aulavb 15/63

 

 Programação Estruturada – VB.Net 

14

Tipos de Variáveis

As variáveis e as constantes podem ser basicamente de três tipos:

Numéricas, Alfanuméricas ou lógicas.

Numéricas - Específicas para armazenamento de números, que

posteriormente poderão ser utilizados para cálculos. Podem ser ainda classificadas

como Inteiras ou Reais. As variáveis do tipo inteiro são para armazenamento de

números inteiros e as Reais são para o armazenamento de números que possuam

casas decimais.

Alfanuméricas - Específicas para dados que contenham letras e/ou números.Pode em determinados momentos conter somente dados numéricos ou somente

literais. Se usado somente para armazenamento de números, não poderá ser

utilizada para operações matemáticas.

Lógicas - Armazenam somente dados lógicos que podem ser Verdadeiro ou

Falso.

Declaração de Variáveis

As variáveis só podem armazenar valores de um mesmo tipo, de maneira que

também são classificadas como sendo numéricas, lógicas e literais.

Decidindo sobre o nome das variáveis:

Um nome de variável não pode ter espaços, em vez disso use o caractere

sublinhado para conectar as palavras:

Ex.: Saldo, Saldo_da_Conta, ou TotalRelatorio

Algumas linguagens são sensiveis à distinção entre maiúsculas e minúsculas.

Ex.: XYZ, xyz (são duas variáveis em C, mas são as mesmas em VB,

portanto cuidado ao criar variáveis).

Utilizando números em nomes de variáveis. Você pode usar números em

qualquer parte do nome de uma variável exceto como primeiro caractere.

Ex.: windows_98, Saldo1, caixa2

Page 16: AulaVB

5/12/2018 AulaVB - slidepdf.com

http://slidepdf.com/reader/full/aulavb 16/63

 

 Programação Estruturada – VB.Net 

15

Identificadores proibidos: 

Nas linguagens de programação, determinadas palavras-chave são básicas

às funções do compilador. Você não pode utilizar estas palavras reservadas comonome de variáveis.

Ex.: for, while, do (do Visual Basic), begin, end, program (no Delphi ).

O tipo da variável

Após decidir sobre o nome da variável, você também deve decidir sobre o tipo

da variável. Um tipo descreve como uma variável será utilizada e que tipo de

informação ela pode armazenar.Todas as declarações de variáveis devem vir antes do código onde são

utilizadas.

Nota: Algumas linguagens não possuem declarações de variáveis ou

consideram a declaração opcional, na primeira vez que o compilador vê uma

variável, ele determina tanto baseado no contexto como na primeira letra da variável

que tipo ela é e qual o valor ela deve ter quando for utilizada pela primeira vez.

A declaração das variáveis impede o uso de variáveis de forma errada ou que

não existem, pois o compilador encontra essas variáveis e emite um aviso de erro

durante a compilação.

Exemplos de variáveis e atribuição de conteúdos

Debito = 0

Saldo_inicial = 0

Contador = 1000

Mensagem = "Você tem certeza ? "

Saldo = Credito - Debito

Page 17: AulaVB

5/12/2018 AulaVB - slidepdf.com

http://slidepdf.com/reader/full/aulavb 17/63

 

 Programação Estruturada – VB.Net 

16

Exercícios

1) Declare duas variáveis numéricas atribuindo valores a elas no evento Load doformulário.

2) Qual das variaveis está com conteúdo errado

1. ( ) Nome = 154

2. ( ) Cliente = "Ana Maria"

3. ( ) Valor = 1200

4. ( ) Divida = Cliente + Valor

Para declarar variáveis em VB.Net usamos a instrução Dim seguida do nome

da variável, do tipo e o valor inicial da mesma. Com isso estamos dizendo ao VB.Net

que reserve um local da memória para guardar valores.

Exemplos:

Variáveis

Dim AvisoErro As String

AvisoErro = "Nome não encontrado..."

Dim Idade As Integer = 30

Constantes

Const AnoBase As Integer = 2005

Const LOCAL_DADOS As String = "c:\prog\Dados"

Dicas:- Não esqueça de fazer os exercícios das aulas e praticar.

Page 18: AulaVB

5/12/2018 AulaVB - slidepdf.com

http://slidepdf.com/reader/full/aulavb 18/63

 

 Programação Estruturada – VB.Net 

17

Exemplo:

Crie o projeto abaixo e coloque os objetos como indicado.

Tipo Projeto:  Windows Application 

Nome do Projeto:  Calculadora 

Local do Projeto:  c:\aulasvbnet 

 

Objetos Propriedade = Valor

FormName = frmPrincipal

Text = Calculadora

ButtonName = btnSomar

Text = &Somar

TextBoxName = txtvalor1

Text =

TextBoxName = txtvalor2

Text =

LabelName = lblTotal

Text = 0

Label Text = Valor 1:

Label Text = valor 2:

Label Text = SOMA:

Page 19: AulaVB

5/12/2018 AulaVB - slidepdf.com

http://slidepdf.com/reader/full/aulavb 19/63

 

 Programação Estruturada – VB.Net 

18

Agora, no evento Click do botão Somar coloque o seguinte código:

Dim intTotal As IntegerintTotal = Integer.Parse(txtValor1.Text) + Integer.Parse(txtValor2.Text)

lblTotal.Text = intTotal.ToString

A função destacada Integer.Parse tem o objetivo de converter o texto

passado de string para Inteiro e a propriedade ToString tem a função de converter

para string o valor calculado na variável intTotal antes de mostrar no label.

Veja que em VB.NET todas as variáveis são tratadas como objetos.

ATENÇÂO: Veja a tabela de Operadores aritméticos e a ordem de precedência dos

mesmos.

Praticando:

1 – Faça o seguinte programa:

Crie um formulário que peça a Idade de pessoa e calcule:

a. Quantos Dias de vida a pessoa tem;

b. Quantas Horas de vida a pessoa tem;

Formulas: 

DiasVida = Idade * 365

HorasVida = (Idade * 365 ) * 24

2 – Faça um programa que:

Ao ser informado o valor da compra e o valor do desconto (em porcentagem)dessa compra, informe na tela, destacado, o total a ser pago pelo cliente.

Formula: ValorCompra = ValorCompra - (ValorCompra * Desconto) / 100

Page 20: AulaVB

5/12/2018 AulaVB - slidepdf.com

http://slidepdf.com/reader/full/aulavb 20/63

 

 Programação Estruturada – VB.Net 

19

Trabalhando com estruturas de controle (If /

Case) 

A Instrução IF THEN ELSE

A instrução IF pode ser usada para executar uma instrução quando a

condição for verdadeira (If/Then Se/Então), ou para escolher entre duas opções (If-

Then-Else, Se-então-senão). A condição deve ser uma expressão booleana (lógica).

Sintaxe:

IF condição [ THEN ]

[ ação ]

Else

[ ação ]

End If

Veja no final da apostila a tabela de operadores relacionais / Lógicos usados

nas condições do comando IF.

A Instrução SELECT CASE

A instrução SELECT CASE foi projetada para tornar fácil testar vários valores

possíveis de uma determinada variável ou expressão.

Entretanto ela não permite que sejam avaliados os valores possíveis para

mais do que uma expressão, como a instrução IF faz. A sintaxe é a seguinte:

Select Case Expressão

Case valor1

' Instruções a serem executadas

Case valor2

' Instruções a serem executadas

Case valor3

' Instruções a serem executadas

Case Else

' Instruções a serem executadas

End Select

A sintaxe é simples, mas há algumas opções e escolhas sutis que osdesenvolvedores devem levar em consideração quando estiverem codificando.

Page 21: AulaVB

5/12/2018 AulaVB - slidepdf.com

http://slidepdf.com/reader/full/aulavb 21/63

 

 Programação Estruturada – VB.Net 

20

Primeiro, a expressão de teste deve ter mais de dois resultados, caso

contrário, a instrução IF seria a melhor escolha.

Em segundo lugar, a instrução CASE  será avaliada até que uma condiçãoverdadeira tenha sido encontrada ou CASE ELSE  seja executada. Com isso em

mente, você deve colocar as instruções case em ordem de probabilidade, ou seja,

as que têm mais chance de ocorrer são codificadas primeiro. A instrução case pode

conter expressões bastante complexas, e possui diversas variações, como ilustrado

a seguir:

Expressão simples

Case 8

 Varios ítens

Case 8,4,0 

Intervalos

Case 6 to 19 

Expressão de comparação:

Case Is > 12 

Expressão composta:

Case 5, 8, 11 To 14, Is > 40 

Exercícios:

Considerando para esse exercício que o valor que define maioridade seja 18

anos, vamos fazer um programa que pergunte o nome e a idade de uma pessoa e

informe na tela se a mesma é Maior ou Menor de idade.

Crie o projeto abaixo e coloque os objetos no mesmo:

Tipo Projeto:  Windows Application 

Nome do Projeto:  Verificador 

Local do Projeto:  c:\aulasvbnet 

Page 22: AulaVB

5/12/2018 AulaVB - slidepdf.com

http://slidepdf.com/reader/full/aulavb 22/63

 

 Programação Estruturada – VB.Net 

21

Objetos Propriedade = Valor

FormName = frmPrincipal

Text = Verificador de Idade

ButtonName = btnVerificar

Text = &Verificar

TextBoxName = txtNome

Text =

TextBoxName = txtIdade

Text =

LabelName = lblSituacao

Text =

Label Text = Nome:Label Text = Idade:

Label Text = Situação:

Com um exemplo simples em VB.NET podemos mostrar como trabalhar com

instruções condicionais.

No evento Click do botão Verificar coloque o seguinte código:

If Integer.Parse(txtIdade.Text) > 18 Then

lblSituacao.Text = "Maior"

Else

lblSituacao.Text = "Menor"

End If

Page 23: AulaVB

5/12/2018 AulaVB - slidepdf.com

http://slidepdf.com/reader/full/aulavb 23/63

 

 Programação Estruturada – VB.Net 

22

O seguinte código pode ser colocado no evento Validating do objeto txtIdade

para evitar que se tente entrar com uma idade que não seja numérica.

If Not IsNumeric(txtIdade.Text) Then

MessageBox.Show("Favor digitar um valor no campo idade")

txtIdade.Text = ""

e.Cancel = True

End If 

O importante nesse exercício é você perceber que o seu programa pode

tomar uma decisão, ou seja, adotar um caminho a seguir.

Praticando:

1 – Faça um programa que receba vários números e imprima qual é o maior.

2 – Um empresário resolveu dar descontos nas vendas conforme a seguinte tabela:

De: 1,00 até 100,00 - 5% Desconto

De: 101,00 até 500,00 - 8% Desconto

De: 501,00 até 1.000,00 - 10% Desconto

Acima de 1.001,00 - 15% Desconto

Faça um programa que o usuário entre com o valor da compra e a tela

informe o desconto e o valor a cobrar.

Page 24: AulaVB

5/12/2018 AulaVB - slidepdf.com

http://slidepdf.com/reader/full/aulavb 24/63

 

 Programação Estruturada – VB.Net 

23

Trabalhando com Sub e Functions 

Os métodos são ações que um objeto executa. Há dois tipos de métodos no

VB.Net: Os procedimentos (mais conhecidos como SUBs) e as funções.

Um recurso de organizar um código é uso de SUBROTINAS ou FUNÇÕES. O

uso de Function é essencialmente igual a funções embutidas, tipo isNumeric ou

CDate , só que cada programador pode criar de acordo com sua necessidade. A

estrutura básica de uma função é:

[ Private/Public ] Function nome([ arglista ]) [ As tipo ]

[ ação ]

[ Exit Function ]

[ ação ] 

End Function

[ Private/Public ] Sub nome([ arglista ])

[ ação ]

[ Exit Sub ]

[ ação ] 

End Sub

Function é o tipo de subprocedimento que podemos criar com o VB. Elas se

diferem das Subs porque retornam um valor.

Aqui, NOME é o nome da função que o programador define. (arglista) são

argumentos da função, [As tipo] é o tipo de valor retornado pela função.

Exemplo:

Function SomaAB(ByVal a As Double, ByVal b As Double) As Double

Return (a + b)

End Function

Sub - A característica principal das subs é o não retorno de valores.

Exemplo:

Sub MessagemOk()

MessageBox.Show("Operação realizada com sucesso!")

End Sub

Sub Messagem(ByVal strMsg As String)MessageBox.Show("Msg: " & strMsg)

End Sub

Page 25: AulaVB

5/12/2018 AulaVB - slidepdf.com

http://slidepdf.com/reader/full/aulavb 25/63

 

 Programação Estruturada – VB.Net 

24

Exercícios:

Crie o projeto abaixo e coloque os objetos como descrito:

Tipo Projeto:  Windows Application 

Nome do Projeto:  Funcoes 

Local do Projeto:  c:\aulasvbnet 

 

Objetos Propriedade = Valor

FormName = frmPrincipal

Text = Exemplo de Funções

ButtonName = btnCalcular

Text = &Calcular

TextBoxName = txtNumero1

Text =

TextBoxName =txtNumero2

Text =

TextBoxName =txtNumero3

Text =

Label Text = Numero-1

Label Text = Numero-2

Label Text = Numero-3

Label Text = Soma:

Label Text = Média:

Label

Text =

name = lblSoma

Fonte = Tahoma, Negrito, 12, vermelho

Label

Text =

name = lblmedia

Fonte = Tahoma, Negrito, 12, vermelho

Page 26: AulaVB

5/12/2018 AulaVB - slidepdf.com

http://slidepdf.com/reader/full/aulavb 26/63

 

 Programação Estruturada – VB.Net 

25

Antes aproveite e digite as funções abaixo, fora da sub btnCalcular_Click:

Private Function Soma3(ByVal Valor1 As Double, ByVal Valor2 As Double,

ByVal Valor3 As Double) As Double

Return (Valor1 + Valor2 + Valor3)

End Function

Private Function Media3(ByVal Valor1 As Double, ByVal Valor2 As Double,

ByVal Valor3 As Double) As Double

Return Soma3(Valor1, Valor2, Valor3) / 3

End Function 

No evento Click do botão Calcular coloque o seguinte código:

Dim n1, n2, n3 As Double

n1 = Double.Parse(txtNumero1.Text) ' Converte para double

n2 = Double.Parse(txtNumero2.Text)

n3 = Double.Parse(txtNumero3.Text)

lblSoma.Text = Soma3(n1, n2, n3).ToString

lblMedia.Text = Media3(n1, n2, n3).ToString

Page 27: AulaVB

5/12/2018 AulaVB - slidepdf.com

http://slidepdf.com/reader/full/aulavb 27/63

 

 Programação Estruturada – VB.Net 

26

Trabalhando com Estruturas de repetição -

Laços 

For - O loop for no VB baseia-se estritamente em um contador, o qual pode

ser aumentado ou diminuído cada vez que o loop  for executado. O contador é

inicializado e o loop  irá se repetir enquanto o contador não chegar ao fim da

contagem. O seu formato básico é:

For contador [ As TipoDado ] = Inicio To Fim [ Step passo ][ Instruções ]

[ Exit For ]

[ Instruções ]

Next [ contador ]

Exemplo For :

Dim i As Integer

For i = 1 To 30

lstLista.Items.add(i.ToString)

Next i

While - é um comando de repetição que não possui controle de um contador

e que testa a condição antes de executar o loop . Este loop irá se repetir enquanto a

condição seja verdadeira, existe a possibilidade de que ele nunca venha a ser

executado. A sua forma básica é:

While Condição

[ Instruções ]End While 

Exemplo While:

Dim contador As Integer = 0

While contador < 20

contador = contador + 1 ' ou contador += 1

If contador = 10 Then

Messagebox.Show("Valor do contador: " & contador.tostring

End If

End While

MessageBox.Show("Final do contador: " & contador.ToString)

Page 28: AulaVB

5/12/2018 AulaVB - slidepdf.com

http://slidepdf.com/reader/full/aulavb 28/63

 

 Programação Estruturada – VB.Net 

27

Dicas:

- Quando utilizamos laços numéricos (for ) é muito comum que a variável do

laço seja específica para esta finalidade. Então, ao invés de fazermos um dim comuma variável específica para isso podemos declarar a variável diretamente na

instrução do laço, veja como fica:

For i As Integer = 1 To 100

[ Código ]

Next i

A variável “i” se torna uma variável com escopo de bloco, então ela só éválida dentro do laço, fora do laço a variável não existe.

Exercícios:

Vamos criar um exemplo usando a instrução (comando) for. Crie o projeto

abaixo e coloque os objetos como descrito:

Tipo Projeto:  Windows Application 

Nome do Projeto:  Repeticao 

Local do Projeto:  c:\aulasvbnet 

 

Objetos Propriedade = Valor

FormName = frmPrincipal

Text = Exemplo FOR

Button

Name = btnIniciar

Text = Iniciar

ListBoxName = lstLista

Text =

Page 29: AulaVB

5/12/2018 AulaVB - slidepdf.com

http://slidepdf.com/reader/full/aulavb 29/63

 

 Programação Estruturada – VB.Net 

28

No evento Click do botão Iniciar coloque o seguinte código:

Dim intInd As Integer

lstlista.Items.clear() ' Limpa a lista

For intInd = 1 To 10

' Monta a linha de detalhe

lstLista.Items.add(intInd.ToString & " X 3 = " & (intInd * 3).ToString)

Next

Observe que você pode montar uma string (conteúdo alfa numérico) usando o

& para conectar duas ou mais Strings. Por exemplo:

var1 = "Ola "

var2 = "Mundo...!"

var1 & var2 vai ter como conteúdo: Ola Mundo...!

O mesmo exemplo usando a instrução While  

Dim intInd As Integer

lstlista.Items.clear() ' Limpa a lista

While intInd <= 10

' Monta a linha de detalhe

lstLista.Items.add(intInd.ToString & " X 3 = " & (intInd * 3).ToString)

intInd = intInd + 1 ' conhecido em programação como contador

End While

Page 30: AulaVB

5/12/2018 AulaVB - slidepdf.com

http://slidepdf.com/reader/full/aulavb 30/63

 

 Programação Estruturada – VB.Net 

29

Praticando:

1 – Faça um programa que mostre todos os números pares entre 7 e 46, use For.2 – Altere o programa acima para mostrar também a soma total desses valores.

3 – Faça um programa que mostre todas as tabuadas do 1 ao 10.

Page 31: AulaVB

5/12/2018 AulaVB - slidepdf.com

http://slidepdf.com/reader/full/aulavb 31/63

 

 Programação Estruturada – VB.Net 

30

Criando um pequeno Editor em VB.NET 

Tipo Projeto:  Windows Application 

Nome do Projeto:  Editor 

Local do Projeto:  c:\aulasvbnet 

Crie o projeto acima e coloque os seguintes objetos no mesmo:

 

Objetos  Propriedade = Valor 

Form  Name = frmPrincipalText = Editor Simples de textos 

TextBox 

Name = txtTexto

Multiline = True

Text =

Button 

name = btnSalvar

Text = &Salvar 

Label  Text = Arquivo: 

TextBox 

Name = txtArquivo

Text =

Distribua os objetos como na figura abaixo:

Page 32: AulaVB

5/12/2018 AulaVB - slidepdf.com

http://slidepdf.com/reader/full/aulavb 32/63

 

 Programação Estruturada – VB.Net 

31

1) No início do programa, acima da linha Public Class frmPrincipal , coloque o

seguinte:

Imports System.IO ' Isso habilita o sistema de Entrada e Saida

2) No evento clique do botão Salvar coloque o seguinte código:

Dim oeditor As StreamWriter

oeditor = File.CreateText(txtTexto.Text)

oeditor.Write(txtarquivo.Text)

oeditor.Close()

Dicas:

- Pesquise como ler o conteúdo de um arquivo, usando o tipo streamreader .

Page 33: AulaVB

5/12/2018 AulaVB - slidepdf.com

http://slidepdf.com/reader/full/aulavb 33/63

 

 Programação Estruturada – VB.Net 

32

Um pouco de matemática 

Detectamos que em seu acompanhamento do curso você aprendeu bem o

Copiar / Colar, a partir dessa parte do curso, o famoso Ctrl+C e o Ctrl+V, já não vão

ser tão úteis assim.

1) Faça um programa que calcule o Delta da fórmula de Bháskara:

Todas as informações vistas na imagem acima devem aparece no seu

programa.

Os fontes desse programa não foram colocados aqui de propósito.

Dicas:

- No final desta apostila tem várias tabelas úteis para você resolver os

problemas.

Page 34: AulaVB

5/12/2018 AulaVB - slidepdf.com

http://slidepdf.com/reader/full/aulavb 34/63

 

 Programação Estruturada – VB.Net 

33

Trabalhando com banco de dados

Iremos ver agora uma visão geral do extenso suporte a bancos de dados do

VB.NET.

Conceitos Básicos

Antes de iniciarmos é preciso conhecer os conceitos básicos relacionados aos

bancos de dados. Não pretendo esgotar o assunto, mas dar uma visão geral para

facilitar a compreensão dos próximos tópicos.

Sistema gerenciador de banco de dados (SGBD): Programa usado para

guardar, organizar e recuperar dados. Ex.: MS-SQL Server, Oracle, Sybase, etc.

Estrutura lógica do banco de dados: Definição dos dados que o banco de

dados vai conter, especificando tabelas, colunas, relacionamentos, etc (M.E.R. e

D.E.R).

Estrutura física do banco de dados: Arquivos onde os dados são gravados.

Ex.: No Paradox cada tabela corresponde a um arquivo com extensão *.db; no

Access várias tabelas são agrupadas em um único arquivo com extensão *.mdb.

Tabela: Tabelas são agrupamentos de dados afins dentro da estrutura lógica.

As tabelas são divididas em linhas e colunas. Ex.: Uma tabela de clientes agrupadados de todos os clientes cadastrados. Cada linha da tabela de clientes contém

dados de um cliente específico. Cada coluna da tabela de clientes representa um

atributo dos clientes – o nome, o código, o logradouro, etc.

Abaixo vemos o fluxo básico dos passos e objetos necessários para integrar

uma aplicação VB.NET ao banco de dados.

Page 35: AulaVB

5/12/2018 AulaVB - slidepdf.com

http://slidepdf.com/reader/full/aulavb 35/63

 

 Programação Estruturada – VB.Net 

34

CONEXÃO

COMANDO

LISTA

Aplicação VB.NETAplicação VB.NET

Bancode

Dados

 

O primeiro passo é criar um objeto que fará a conexão com o banco dedados. Este objeto fará a ponte para o envio de comandos da aplicação para o

banco de dados. Para isso, devemos informar a este objeto todas as informações de

como achar o banco, tais como tipo de provedor de acesso, endereço do servidor,

usuário e senha. Estas informações são passadas através da String de Conexão

(ou Connection String). O formato típico de uma “string de conexão” é:

"Provider=Microsoft.Jet.OLEDB.4.0;DataSource=nomeDatabase;User ID

= meuUsuario; Password = minhaSenha;".Com o objeto devidamente configurado, devemos abrir a conexão, e se todos

os dados estiverem corretos, a ligação com o banco de dados será bem sucedida.

Em segundo, para executarmos modificações e consultas no banco de dados,

precisamos criar um objeto de Comando. Este objeto é o responsável por enviar as

instruções SQL ao banco e retornar os resultados da execução. Para saber em qual

banco de dados o comando será executado, ele utiliza o objeto de conexão como

ponte. Se os comandos forem de modificação no banco (INSERT, UPDATE,

DELETE), o objeto de comando retorna um número inteiro contendo quantas linhas

foram afetadas na tabela. Se a instrução for uma consulta, o comando retorna um

objeto do tipo Lista (similar à tabela) contendo todas as linhas e colunas referentes à

consulta executada. Com este objeto Lista, podemos exibir os dados em tela como

um grid ou nos campos.

Dicas:

- Leia o capítulo de Instruções SQL no final desta apostila.

Page 36: AulaVB

5/12/2018 AulaVB - slidepdf.com

http://slidepdf.com/reader/full/aulavb 36/63

 

 Programação Estruturada – VB.Net 

35

ADO.NET

A partir desse ponto vamos tratar do acesso a dados em VB.NET, fazendouso do novo modelo de acesso a dados incluído na plataforma .NET, o ADO.NET.

Vamos aprender as tarefas básicas para acesso a dados com aplicações baseadas

em formulários windows, empregando a tecnologia ADO.NET.

O que é ADO.NET ?

- Nova biblioteca de acesso a banco de dados;- Desenvolvida especialmente para a plataforma .NET (DotNet);

- Acessivel de qualquer linguagem da plataforma.

É importante observar que o ADO.NET não é obrigatorio para acesso a base

de dados, você pode usar outras tecnologias, como o ADO tradicional.

Vantagens do ADO.NET

- Acesso a banco de dados desconectados;

- Excelente integração com o padrão XML (facilita a troca de informaçõs

com outros programas);

- Melhor performance;

- Acesso direto a banco de dados SQL Server e Oracle (sem passar por

drivers).

As classes ADO.NET pode ser divididas em dois grandes grupos:

Data Classes - Contém dados

As Data Classes, contém os dados mas não sabem nada a respeito de como

obter os dados, não estão conectadas ao banco de dados.

A principal classe que contém dados é a classe DataSet , que funciona como

um banco de dados em memória. Ele contém objetos do tipo DataTable que refletem

as tabelas do banco de dados, com linhas e colunas.

Page 37: AulaVB

5/12/2018 AulaVB - slidepdf.com

http://slidepdf.com/reader/full/aulavb 37/63

 

 Programação Estruturada – VB.Net 

36

Managed Provider - Acessam os dados

Usadas para ler e escrever em banco de dados.

As classes do Manager Provider  são usadas para acessso direto aoSQLServer e bancos OLEDB.

As classes têm sempre um prefixo que identifica a família a qual pertencem:

Classe  Descrição 

SqlCommand

OleDbCommand

Classe que representa um comando SQL (INSERT,

SELECT, Etc.) 

SqlConectionOleDbConection

Classe que representa a etapa de cneção com umprovedor de dados.

SqlCommandBuilder

OleDBCommandBuilder 

Gerador de comandos SQL de inclusão, alteração e

exclusão através de uma consulta SQL de seleção de

dados. 

SqlDataReader

OleDbDataReader

Um leitor de dados forward only  (somente para frente),

conectado à base de dados. 

SqlDataAdapter

OleDbDataAdapter

Classe adaptadora entre um objeto DataSet  e seusopcionais físicos na base de dados (select, insert, update

e delete). 

SqlParameter

OleDbparameter 

Define os parâmetros usados na chamada a

procedimentos armazenados no banco (store 

procedures ). 

SqlTransaction

OleDbtransaction 

Gerenciamento de transações a serem realizadas em

uma base de dados. 

Page 38: AulaVB

5/12/2018 AulaVB - slidepdf.com

http://slidepdf.com/reader/full/aulavb 38/63

 

 Programação Estruturada – VB.Net 

37

Trabalhando com banco de dados – Na prática 

Agora vamos definir um problema fictício e a partir dele será criado um

programa para exemplificar o acesso ao banco de dados no VB.NET.

Vamos considerar um sistema para movimentação de estoque, onde o

objetivo é cadastrar os produtos de um estabelecimento e controlar entrada e saída

dos mesmos.

Após a escolha do sistema vamos definir a estrutura inicial do nosso Banco

de Dados. Essa fase é muito importante, pois um banco de dados projetado de

forma errada faz com que a aplicação não tenha um bom resultado.

PRODUTO

CD_PRODUTO

DS_PRODUTO

DS_UNIDADE

PRECO_CUSTO

PRECO_VENDA

QT_ESTOQUE

QT_MINIMO

NUMERIC(4)

CHAR(50)

CHAR(2)

NUMERIC(8,2)

NUMERIC(8,2)

NUMERIC(8,2)

NUMERIC(8,2)

<pk>

MOVIMENTO

CD_MOVIMENTO

CD_PRODUTO

DATA_MOVIMENTO

TIPO

QUANTIDADE

NUMERIC(4)

NUMERIC(4)

DATETIME

CHAR(1)

NUMERIC(8,2)

<pk>

<fk>

 

Criamos estas tabelas em um banco de dados Access de nome

estoque.mdb.Feito isso temos a base de dados para trabalhar com nosso sistema, agora

vamos criar nosso programa com as seguintes características:

Tipo Projeto:  Windows Application 

Nome do Projeto:  AdmEstoque 

Local do Projeto:  c:\aulasvbnet 

Page 39: AulaVB

5/12/2018 AulaVB - slidepdf.com

http://slidepdf.com/reader/full/aulavb 39/63

 

 Programação Estruturada – VB.Net 

38

Agora vamos vincular um banco de dados à nossa aplicação. Para isto abra a

  janela de fonte de dados pelo menu Data>Show Data Sources . Abrirá uma janela

como a da figura abaixo:

Clique no link Add New Data Source para abrir a janela de escolha do tipo de

conexão.

Page 40: AulaVB

5/12/2018 AulaVB - slidepdf.com

http://slidepdf.com/reader/full/aulavb 40/63

 

 Programação Estruturada – VB.Net 

39

Escolha Database e clique em Next .

Depois clique em New Connection para escolher o banco de dados.

Escolha Microsoft Access Database File e clique em Continue .

Procure o banco de dados access, criado anteriormente, pelo botão Browse .

Page 41: AulaVB

5/12/2018 AulaVB - slidepdf.com

http://slidepdf.com/reader/full/aulavb 41/63

 

 Programação Estruturada – VB.Net 

40

Clique em OK para concluir a conexão. Ao voltar para a tela de escolha de

conexão, clique em Next .

Page 42: AulaVB

5/12/2018 AulaVB - slidepdf.com

http://slidepdf.com/reader/full/aulavb 42/63

 

 Programação Estruturada – VB.Net 

41

Obs.: Para as conexões que usam arquivos, como o access, o .net pergunta se

você quer incluir este arquivo na sua solução. O único problema é que quandoexecutamos a aplicação, o .net copia esta arquivo para a pasta de execução,

limpando o bando de dados que havíamos modificado pela aplicação. Portanto, ao

perguntar se deseja copiar, cliquem em No.

Clique em Next para salvar a string de conexão.

Selecione agora as tabelas que iremos usar e então Finish .

Page 43: AulaVB

5/12/2018 AulaVB - slidepdf.com

http://slidepdf.com/reader/full/aulavb 43/63

 

 Programação Estruturada – VB.Net 

42

Sua janela de Data Sources ficará mais ou menos assim:

Um novo arquivo foi adicionado à sua solução, o app.config. Este arquivo é

formatado em XML e agora armazena a sua string de conexão (tag

<connectionStrings> ).

Page 44: AulaVB

5/12/2018 AulaVB - slidepdf.com

http://slidepdf.com/reader/full/aulavb 44/63

 

 Programação Estruturada – VB.Net 

43

Com nosso banco de dados criado e vinculado à nossa aplicação, podemos

começar a montar as telas.

Renomeie o formulário padrão, de Form1 para frmPrincipal, na janela

Solution Explorer . Abra-o e altere a propriedade isMdiContainer para True . Adicione

ao formulário um objeto do tipo MenuStrip e monte o menu de nossa aplicação(digite na área indicada com Type Here ) com a seguinte hierarquia:

- Cadastros

o Produtos

- Movimentação

o Entrada

o Saída

- Sair

Page 45: AulaVB

5/12/2018 AulaVB - slidepdf.com

http://slidepdf.com/reader/full/aulavb 45/63

 

 Programação Estruturada – VB.Net 

44

Com um duplo clique no menu Sair, cria-se automaticamente o evento clique

do mesmo. Codifique a saída do sistema como segue.

Private Sub SairToolStripMenuItem_Click(ByVal sender As 

System.Object, ByVal e As System.EventArgs) Handles 

SairToolStripMenuItem.Click

 Application.Exit()

End Sub 

Agora adicione mais um formulário à solução, pelo menu Project>Add 

Windows Form e dê o nome de frmCadProduto . Codifique o evento click do menu

Produtos para executar este novo formulário.

Private Sub ProdutosToolStripMenuItem_Click( ByVal sender As 

System.Object, ByVal e As System.EventArgs) Handles 

ProdutosToolStripMenuItem.Click

frmCadProduto.MdiParent = Me

frmCadProduto.Show()

End Sub

Page 46: AulaVB

5/12/2018 AulaVB - slidepdf.com

http://slidepdf.com/reader/full/aulavb 46/63

 

 Programação Estruturada – VB.Net 

45

Monte os campos de acordo com o que foi modelado na tabela e adicione um

botão Salvar . Não se esqueça de nomear todos os objetos.

Como o objetivo é demonstrar o acesso ao banco de dados, não vamos nos

preocupar em validar os campos neste momento, mas é uma ótima hora parapraticar.

Para usarmos os objetos de acesso a dados, precisamos importa-los para

dentro do formulário, para isso colocamos na primeira linha do código o comando

Imports  com a biblioteca que iremos usar. Para acessar o access, usamos as

coleções OleDb e para Sql Server as SqlClient . O comando então é este, para o

nosso exemplo.

Imports System.Data.OleDb 

Page 47: AulaVB

5/12/2018 AulaVB - slidepdf.com

http://slidepdf.com/reader/full/aulavb 47/63

 

 Programação Estruturada – VB.Net 

46

Para facilitar a reutilização do código, vamos criar funções que executam

tarefas repetitivas. Como sempre precisamos abrir a conexão, vamos criar uma

função que faça esta parte e daremos o nome de ConectaBanco. Tambémdeclaramos uma variável de conexão no contexto do form, para ser utilizada em

todas as funções que criarmos.

Imports System.Data.OleDb

Public Class frmCadProduto

'Declaramos um objeto de conexão comum ao formulario todo

Dim objConexao As OleDbConnection

Agora o código da função ConectaBanco.

'Sub rotina para conectar no banco de dados Private Sub ConectaBanco()

'Criamos o objeto na memória para uso

objConexao = New OleDbConnection

'Carregamos esse objeto com a string de conexao

'configurada no app.config de nome estoqueConnectionString

objConexao.ConnectionString = My.Settings.estoqueConnectionString

'Usamos o Try para capturar um erro caso ele ocorra

Try

'Abrimos a conexão

objConexao.Open()

Catch ex As Exception

'O erro é capturado pelo objeto ex

MessageBox.Show("Ocorreu um erro: " & ex.Message)End Try

End Sub 

Por enquanto vamos programar somente a inserção dos dados. Portanto

vamos ao evento click do botão salvar. Nosso comando insert ficará assim:

INSERT INTO PRODUTO(CD_PRODUTO, DS_PRODUTO, DS_UNIDADE, PRECO_CUSTO,

PRECO_VENDA, QT_ESTOQUE, QT_MINIMO) VALUES(VALOR, ‘VALOR’, ‘VALOR’, VALOR,

VALOR, VALOR, VALOR) 

Trocaremos as palavras “Valor” pelo valor informado pelo usuário.

Private Sub btnSalvar_Click(ByVal sender As System.Object, ByVal e As 

System.EventArgs) Handles btnSalvar.Click

'Chama o método de conexão

Call ConectaBanco()

'Declaramos um objeto de comando

Dim objComando As OleDbCommand

'Criamos o objeto na memória

objComando = New OleDbCommand

'Configuramos a conexão

objComando.Connection = objConexao

'Montamos o comandoobjComando.CommandText = "INSERT INTO PRODUTO(CD_PRODUTO,

DS_PRODUTO, DS_UNIDADE, PRECO_CUSTO, PRECO_VENDA, QT_ESTOQUE, QT_MINIMO)

Page 48: AulaVB

5/12/2018 AulaVB - slidepdf.com

http://slidepdf.com/reader/full/aulavb 48/63

 

 Programação Estruturada – VB.Net 

47

VALUES(" & txtCodigo.Text & ", '" & txtDescricao.Text & "', '" &

txtUnidade.Text & "', " & txtCusto.Text.Replace(",", ".") & ", " &

txtVenda.Text.Replace(",", ".") & ", " & txtEstoque.Text.Replace(",", ".")

& ", " & txtMinimo.Text.Replace(",", ".") & " )"

'Precisaremos de uma variavel para guardar o retorno do comandoDim intQtd As Integer

'Novamente o Try para evitar erro na aplicação

Try

'Executamos o comando e guardamos o resultado

'Usamos o metodo ExecuteNonQuery para insert, update e delete

intQtd = objComando.ExecuteNonQuery

'Se o retorno for maior que 0 o comando fez alguma coisa

If intQtd > 0 Then

MessageBox.Show("Salvo com sucesso!")

End If

Catch ex As Exception

MessageBox.Show("Ocorreu um erro: " & ex.Message)

End Try'Desconecta do banco

objConexao.Close()

End Sub 

Ao concatenar os campos numéricos precisamos trocar o caracter “,” por “.”,

pois senão o comando entende que é outro valor após a virgula. Então usamos a

função Replace da classe String, ficando txtMinimo.Text.Replace(",", "."). 

Pronto, podemos executar o programa e inserir os registros no banco de

dados, mas lembrem-se, não validamos os dados, portanto para teste informemcorretamente os campos numéricos com números.

Os comandos Update e Delete utilizam o mesmo código, mudando somente a

propriedade CommandText do objeto de comando. Mais uma vez, para reutilizarmos

código, podemos montar uma função que recebe o texto do comando e o execute no

banco de dados. A chamaremos de ExecutaComando.

Private Sub ExecutaComando(ByVal strComando As String)

'Chama o método de conexão

Call ConectaBanco()

'Declaramos um objeto de comando

Dim objComando As OleDbCommand

'Criamos o objeto na memória

objComando = New OleDbCommand

'Configuramos a conexão

objComando.Connection = objConexao

'O comando foi montado ao chamar a função

'e passado para a variavel strComando

objComando.CommandText = strComando

'Precisaremos de uma variavel para guardar o retorno do comando

Dim intQtd As Integer

'Novamente o Try para evitar erro na aplicação

Try

Page 49: AulaVB

5/12/2018 AulaVB - slidepdf.com

http://slidepdf.com/reader/full/aulavb 49/63

 

 Programação Estruturada – VB.Net 

48

'Executamos o comando e guardamos o resultado

'Usamos o metodo ExecuteNonQuery para insert, update e delete

intQtd = objComando.ExecuteNonQuery

'Se o retorno for maior que 0 o comando fez alguma coisa

If intQtd > 0 ThenMessageBox.Show("Salvo com sucesso!")

End If

Catch ex As Exception

MessageBox.Show("Ocorreu um erro: " & ex.Message)

End Try

'Desconecta do banco

objConexao.Close()

End Sub 

Para chamar o método basta usar o prefixo Call e passar os parâmetros

necessários. Para o insert chamamos assim:

'Chama a função ExecutaComando passando o texto do comando insertCall ExecutaComando("INSERT INTO PRODUTO(CD_PRODUTO, DS_PRODUTO,

DS_UNIDADE, PRECO_CUSTO, PRECO_VENDA, QT_ESTOQUE, QT_MINIMO) VALUES(" &

txtCodigo.Text & ", '" & txtDescricao.Text & "', '" & txtUnidade.Text & "',

" & txtCusto.Text.Replace(",", ".") & ", " & txtVenda.Text.Replace(",",

".") & ", " & txtEstoque.Text.Replace(",", ".") & ", " &

txtMinimo.Text.Replace(",", ".") & " )")

Para praticar, coloque mais 2 botões, um Atualizar e um Apagar e programe o

click dos dois para chamar os comandos de Update e Delete.

Ate agora somente alteramos os registros, vamos então aprender comorecuperar os dados da tabela usando o comando Select. O funcionamento é

praticamente o mesmo, o que muda é o retorno da execução do comando, que irá

montar um objeto Lista com os dados do select executado. Coloque um botão

Selecionar na frente do textbox código. Este botão irá consultar na tabela o produto

correspondente ao código digitado pelo usuário. O evento click fica assim.

Private Sub btnPesquisar_Click(ByVal sender As System.Object, ByVal e

As System.EventArgs) Handles btnPesquisar.Click

'Chama o método de conexão

Call ConectaBanco()

'Declaramos um objeto de comando

Dim objComando As OleDbCommand

'Criamos o objeto na memória

objComando = New OleDbCommand

'Configuramos a conexão

objComando.Connection = objConexao

'O comando foi montado ao chamar a função

'e passado para a variavel strComando

objComando.CommandText = "SELECT * FROM PRODUTO WHERE CD_PRODUTO=" 

& txtCodigo.Text'Precisaremos de uma variavel para guardar o retorno do comando

Page 50: AulaVB

5/12/2018 AulaVB - slidepdf.com

http://slidepdf.com/reader/full/aulavb 50/63

 

 Programação Estruturada – VB.Net 

49

'O retorno será uma lista de registros

Dim objLista As OleDbDataReader

'Novamente o Try para evitar erro na aplicação

Try

'Executamos o comando e guardamos o resultado'Usamos o metodo ExecuteReader para consultas

objLista = objComando.ExecuteReader

'Se o retorno contiver linhas, podemos usar

If objLista.HasRows = True Then

'Posicionamos o cursor do objeto para a proxima linha

'Como temos somente uma devido ao where no nosso select

'Lemos uma vez só

objLista.Read()

'Agora preenchemos os objetos em tela com o da lista

'Cada item é uma coluna da tabela

txtDescricao.Text = objLista.Item("DS_PRODUTO")

txtUnidade.Text = objLista.Item("UNIDADE")

txtCusto.Text = objLista.Item("CUSTO")txtVenda.Text = objLista.Item("VENDA")

txtEstoque.Text = objLista.Item("ESTOQUE")

txtMinimo.Text = objLista.Item("MINIMO")

End If

Catch ex As Exception

MessageBox.Show("Ocorreu um erro: " & ex.Message)

End Try

'Desconecta do banco

objConexao.Close()

End Sub 

Notem a clausula Where  no comando para filtrar somente o produto

informado. Execute, cadastre um produto e depois o consulte para testar.

Page 51: AulaVB

5/12/2018 AulaVB - slidepdf.com

http://slidepdf.com/reader/full/aulavb 51/63

 

 Programação Estruturada – VB.Net 

50

Com o cadastro de produtos terminado, vamos programar a tela de

movimentação de estoque.

Page 52: AulaVB

5/12/2018 AulaVB - slidepdf.com

http://slidepdf.com/reader/full/aulavb 52/63

 

 Programação Estruturada – VB.Net 

51

Tabelas úteis

Operadores Aritméticos - Ordem de precedência:

Operador Aritmético /Concatenação Ordem

^  Exponenciação 

 –  Negação 

*, /   Multiplicação e Divisão 

 \   Divisão Inteira 

Mod  Modulo Aritmético - Resto da divisão 

+, - String + 

Adição subtração - Concatenação

String 

&  Concatenação String 

<<, >>  Bit Shift - Aritmético 

Obs.: Você pode usar os parênteses para alterar a ordem de precedência.

Por exemplo: ValorCompra - ((ValorCompra * Desconto) / 100) 

Operadores Relacionais / Lógicos - Retornam um valor booleano True / False:

 

Operador Descição

=  Igual 

<>  Diferente 

<  Menor 

>  Maior 

<=  Menor ou Igual

>=  Maior ou Igual

Operador Lógico  Descrição 

AND  Operador E

OR Operador OU 

NOT  Operador NÃO 

Page 53: AulaVB

5/12/2018 AulaVB - slidepdf.com

http://slidepdf.com/reader/full/aulavb 53/63

 

 Programação Estruturada – VB.Net 

52

Instruções SQL

O SQL foi desenvolvido para ser uma linguagem padrão para operações com

Banco de Dados. A lingüagem SQL foi elaborada para ser independente de

hardware ou do software. Ao usar o SQL, você não precisa saber a respeito do

software de banco de dados ou do hardware envolvido em uma operação. Tudo o

que você precisa conhecer são os comandos/instruções SQL padrão para solicitar

informações, que obrigatoriamente é o mesmo em todos os sistemas que utilizam o

SQL.

Nota: Na prática existem pequenas diferenças entre o SQL dos diferentes

bancos de dados, como o Microsoft Access, Microsoft SQL Server 2000, ORACLE,

etc.

INSERT – Este comando permite adicionar um ou vários registros a uma tabela do

Banco de Dados. A sintaxe para a execução é:

INSERT INTO nome-tabela [(nome-coluna, ...)]VALUES (relação dos valores a serem incluídos)

onde:

nome-tabela - Representa o nome da tabela onde será incluída o registro.

nome-coluna  - Representa o nome da(s) coluna(s) terão conteúdo no

momento da operação de inclusão.Relação dos valores - Representa os valores a serem incluídos na tabela.

Obs.: Este comando pode ser executado de duas maneiras:

Quando todos os campos da tabela terão conteúdo - Neste caso não é

necessário especificar as colunas, entretanto a relação dos valores a serem

incluídos deverão obedecer a mesma seqüência da definição da tabela. Por

exemplo:

Page 54: AulaVB

5/12/2018 AulaVB - slidepdf.com

http://slidepdf.com/reader/full/aulavb 54/63

 

 Programação Estruturada – VB.Net 

53

INSERT INTO Alunos

VALUES (1, "Carlos Bueno", "123456789", "R. Aliviere 480", 06/07/1980, "14-

5423006")

Quando apenas parte dos campos da tabela terão conteúdo - Neste caso

devem ser especificadas todas as colunas que terão conteúdo e os valores

relacionados deverão obedecer esta seqüência. Para os campos que não tem

conteúdo especificado será preenchido o valor NULL, como mostra o exemplo

abaixo:

INSERT INTO Alunos (cod, nome, rg, endereco)

VALUES (1, "Renato", "123467980", "R. Canavial, 105”)

UPDATE - Esse comando permite atualizar os dados de um ou um grupo de

registros em uma tabela do Banco de Dados. Sua sintaxe é:

UPDATE nome-tabela

SET <nome-coluna> = <novo conteúdo para o campo>

[,nome-coluna = <novo conteúdo para o campo>]

WHERE condição

onde:

nome-tabela - Representa o nome da tabela cujo conteúdo será alterado.

nome-coluna  - Representa o nome da(s) coluna(s) terão seus conteúdos

alterados com o novo valor especificado.

condição  - Representa a condição para a seleção dos registros que serão

atualizados. Esta seleção poderá resultar em um ou vários registros. Neste

caso a alteração irá ocorrer em todos os registros selecionados.

Page 55: AulaVB

5/12/2018 AulaVB - slidepdf.com

http://slidepdf.com/reader/full/aulavb 55/63

 

 Programação Estruturada – VB.Net 

54

UPDATE é especialmente útil quando se quer alterar muitos registros. É

possível alterar vários campos ao mesmo tempo. O exemplo abaixo altera a

descrição de um determinado curso.

UPDATE Curso SET Descricao = ‘Análise de Sistemas’ WHERE codigo = 2

DELETE - Essa instrução permite remover (deletar) um ou um grupo de registros em

uma tabela do Banco de Dados. Sintaxe:

DELETE FROM nome-tabela WHERE condição

onde:

nome-tabela - Representa o nome da tabela cujos registros serão deletados.

condição - Representa a condição para a deleção dos registros. Este seleção

poderá resultar em um ou vários registros. Neste caso a operação irá ocorrer

em todos os registros selecionados.

Uma consulta de exclusão exclui registros inteiros e não apenas dados em

campos específicos. Se quiser excluir valores de um campo específico, crie uma

consulta atualização que mude os valores para Null.

Exemplo de instrução DELETE

Esse exemplo exclui todos os registros de Professores cujo código seja 1.

DELETE FROM Professores WHERE codigo=1

Se fosse necessário excluir um professor de nome específico a estrutura seria

assim

DELETE FROM Professores WHERE nome=’nome professor’

Page 56: AulaVB

5/12/2018 AulaVB - slidepdf.com

http://slidepdf.com/reader/full/aulavb 56/63

 

 Programação Estruturada – VB.Net 

55

SELECT - A instrução SELECT é a mais poderosa da linguagem SQL. Ela permite

selecionar um conjunto de registros em uma ou mais tabelas que atenda a uma

determinada condição definida pelo comando. Sua sintaxe é:

SELECT * FROM nome-tabela [AS APELIDO] [,nome-tabela]

WHERE condição

GROUP BY nome-coluna

ORDER BY nome-campo [ASC/DESC]

onde:nome-tabela - Representa o nome da(s) tabela(s) que contem as colunas que

serão selecionadas ou que serão utilizadas para a execução da consulta.

Apelido  - Os nomes que serão usados como títulos de colunas em vez dos

nomes originais das colunas na tabela.

condição - Representa a condição para a seleção dos registros. Este seleção

poderá resultar em um ou vários registros.

nome-coluna - Representa a(s) coluna(s) cujos resultados são grupados para

atender à consulta.

(*) - Opção default. Mostra todos os valores (campos) obtidos na seleção.

WHERE  - Especifica o critério de seleção dos registros nas tabelas

especificadas.

GROUP BY  - Especifica o(s) campo(s) que serão grupados para atender a

consulta.

ORDER BY - Esta opção quando utilizada apresenta o resultado da consulta

ordenado de forma crescente (ASC) ou decrescente (DESC) pelos campos

definidos.

Para executar esta operação, o programa principal de banco de dados

procura a tabela ou tabelas especificadas, extrai as colunas escolhidas, seleciona as

linhas que satisfazem o critério e classifica ou agrupa as linhas resultantes na ordem

especificada.

Page 57: AulaVB

5/12/2018 AulaVB - slidepdf.com

http://slidepdf.com/reader/full/aulavb 57/63

 

 Programação Estruturada – VB.Net 

56

A instrução SELECT não muda os dados no banco de dados. SELECT é

normalmente a primeira palavra em uma instrução SQL. A maior parte das

instruções SQL são instruções SELECT. A sintaxe mínima da instrução SELECT é:

SELECT <campos> FROM <tabela>

Você pode usar um asterisco (*) para selecionar todos os campos na tabela.

O exemplo abaixo seleciona todos os campos na tabela Alunos:

SELECT * FROM Alunos

A Clausula WHERE

Freqüentemente é necessário localizar registros em um banco de dados que

satisfaçam certos critérios de seleção. O SQL utiliza a clausula WHERE para

especificar os critérios de seleção para a consulta. O formato mais simples para uma

consulta com critérios é:

SELECT * FROM nome-tabela WHERE condição

SELECT * FROM Alunos WHERE ano_nascimento < 1984

A condição da cláusula WHERE pode conter os operadores <, >, <=, >=, <> e

LIKE. O operador LIKE é utilizado para coincidência de padrão, o que permite a

busca de valores semelhantes ao digitado utilizando os caracteres curinga (* e ?). O

asterisco indica qualquer número de caracteres em seqüência na posição do

asterisco dentro do padrão. Já a interrogação indica um único caracter na posição.

Por exemplo, em uma tabela que temos os alunos Anderson, Andre e Manoel.

SELECT * FROM Alunos WHERE nome LIKE ‘?n*’

Page 58: AulaVB

5/12/2018 AulaVB - slidepdf.com

http://slidepdf.com/reader/full/aulavb 58/63

 

 Programação Estruturada – VB.Net 

57

No SELECT acima o retorno será Anderson e Andre, uma vez que buscamos

apenas os valores iniciados por qualquer letra, tendo a segunda letra um “n” e

finalizado por qualquer seqüência

SELECT * FROM Alunos WHERE nome LIKE ‘*n*’

Nesse SELECT procuramos qualquer aluno que tenha a letra “n” em seu

nome, no caso Anderson, Andre e Manoel.

A clausula ODER BY

ORDER BY é opcional. Entretanto, se você quiser exibir seus dados na ordem

classificada, você deve utilizar ORDER BY. O padrão ordem de classificação é

ascendente (A a Z, 0 a 9). Os dois exemplos abaixo classificam os nomes dos

funcionários pelo sobrenome.

SELECT Sobrenome, Nome FROM Funcionarios ORDER BY Sobrenome

SELECT Sobrenome, Nome FROM Funcionarios ORDER  BY Sobrenome

ASC 

Para classificar em ordem descendente (Z a A, 9 a 0), adicione a palavra

reservada DESC ao final de cada campo que você quiser classificar em ordem

descendente. O exemplo abaixo seleciona salários e os classifica em ordem

descendente.

SELECT Sobrenome, Salário FROM Funcionarios ORDER BY Salário DESC,

Sobrenome

ORDER BY é normalmente o último item em uma instrução SQL. Você pode

incluir campos adicionais na cláusula ORDER BY. Os registros são classificados

primeiro pelo primeiro campo listado depois de ORDER BY. Os registros que tiverem

Page 59: AulaVB

5/12/2018 AulaVB - slidepdf.com

http://slidepdf.com/reader/full/aulavb 59/63

 

 Programação Estruturada – VB.Net 

58

valores iguais naquele campo são classificados pelo valor no segundo campo listado

e assim por diante.

A Clausula GROUP BY

Os dados resultantes de uma seleção podem ser agrupados de acordo com

um critério específico. Este procedimento é realizado usando a cláusula GROUP BY.

Apenas uma linha do grupo é apresentada.

Como condição de agrupamento somente poderão aparecer itens do SELECTou funções do grupo. Por exemplo, deseja-se saber o total de créditos cursados

pelos alunos. Para resolver esse problema usamos uma função SUM (explicada

mais adiante) e a clausula GROUP BY.

SELECT cod_alu, SUM(credito) AS [Total de Aula]

FROM Disciplinas

GROUP BY cod_alu;

Nesse exemplo a quantidade de créditos está na tabela disciplinas, para cada

aluno soma-se a quantidade de créditos das disciplinas que ele cursa.

Algumas funções utilizadas no comando SELECT.

a. COUNT(*) (nome-campo)

Retorna a quantidade de registros existentes no campo especificado. Quando

a opção * é utilizada o resultado é a quantidade de registros existentes. Quando é

referenciado o nome de um campo retorna a quantidade de valores existentes na

coluna. Por exemplo, deseja-se saber quantos alunos estão matriculados na

disciplina de Analise de Sistemas I (código da disciplina igual a 1).

Page 60: AulaVB

5/12/2018 AulaVB - slidepdf.com

http://slidepdf.com/reader/full/aulavb 60/63

 

 Programação Estruturada – VB.Net 

59

SELECT COUNT(cod_alu) AS Total FROM cursa WHERE cod_dis=1

Outro exemplo deseja-se saber quantas disciplinas são cursadas pelosalunos.

SELECT cod_alu, count(*) AS [Total Disciplinas]

FROM Cursa

GROUP BY cod_alu

b. SUM (nome-campo)

Retorna a soma dos valores existentes no campo especificado. Por exemplodeseja-se saber quantos créditos (aulas por semana) o aluno Carlos (código igual a

1) cursa, para que se possa calcular a sua mensalidade.

SELECT SUM(credito) AS [Total de Aula]

FROM Disciplinas

WHERE cod_alu=1

Outro exemplo, deseja-se calcular a mensalidade que os alunos pagam

sabendo que o valor do crédito é R$7,00.

SELECT cod_alu, SUM(credito * 7.0)

AS [Total de Aula]

FROM Disciplinas

GROUP BY cod_alu

c. AVG (nome-campo)

Retorna a média dos valores existentes no campo especificado. Por exemplo,

deseja-se saber quantas aulas em média um aluno assiste por dia.

SELECT AVG(Disciplinas.credito) AS [Media de Aulas]

FROM Disciplinas

Page 61: AulaVB

5/12/2018 AulaVB - slidepdf.com

http://slidepdf.com/reader/full/aulavb 61/63

 

 Programação Estruturada – VB.Net 

60

d. MAX (nome-campo)

Retorna o maior valor existente no campo especificado. Por exemplo, deseja-

se saber qual aluno teve a nota mais alta na primeira prova da disciplina da Analisede Sistemas I (código da disciplina igual a 1) no semestre 2009.1.

SELECT MAX(nota1) AS [Maior Nota], nome

FROM Cursa

WHERE cod_dis=1 AND semestre=’2009.1’

GROUP BY cod_Alu, nome

e. MIN (nome-campo)

Retorna o menor valor existente no campo especificado. Por exemplo, deseja-

se saber qual aluno teve a nota mais baixa na primeira prova da disciplina da

Analise de Sistemas I (código da disciplina igual a 1) no semestre de 2009.1.

SELECT MIN(nota1) AS [Menor Nota], nome

FROM Cursa

WHERE cod_dis=1 AND semestre=’2009.1’

GROUP BY cod_Alu, nome

Page 62: AulaVB

5/12/2018 AulaVB - slidepdf.com

http://slidepdf.com/reader/full/aulavb 62/63

 

 Programação Estruturada – VB.Net 

61

Dicas de códigoVarias Dicas e Artigos - servem como fonte de pesquisa e informação, para

quem já está programando.

Como forçar a digitação apenas de números ou letras

Permitir ao usuário digitar apenas letras ou números.

Se for para digitar apenas números coloque esse código no evento KeyPress

If (Char.IsDigit(e.KeyChar) = False) Then

e.Handled = TrueEnd If 

Para somente letras é só inverter

If (Char.IsDigit(e.KeyChar) = True) Then

e.Handled = True

End If 

Mas veja bem, no primeiro caso você. só poderá digitar números, nada de

ponto ou vírgula.

Como pegar o caminho onde está rodando sua aplicação em VB.NET

Se você precisar do caminho atual onde está rodando o seu executável .EXE

Faça o seguinte:

Dim strCaminho As String

strCaminho = Directory.GetCurrentDirectory()

'Por exemplo para mostrar no formulário

lblLocal.Text = strCaminho 

Observação: Você vai precisar do NameSpace: Imports System.IO 

Page 63: AulaVB

5/12/2018 AulaVB - slidepdf.com

http://slidepdf.com/reader/full/aulavb 63/63

 

 Programação Estruturada – VB.Net 

62

Varias dicas para trabalhar com strings / TextBox

1) Para converter um texto para Minúsculas faça o seguinte:Dim strNomeCliente As String

strNomeCliente = "Carlos Renato Rocha Bueno"

lblNomeCliente.Text = strNomeCliente.ToLower()

2) Para converter um texto para Maiúsculas faça o seguinte:

Dim strNomeCliente As String

strNomeCliente = "Carlos Renato Rocha Bueno"

lblNomeCliente.Text = strNomeCliente.ToUpper()

3) Para Saber o tamanho de uma string:Dim intTamanho As Integer

intTamanho = txtNome.Text.Trim().Length 

4) Para verificar se foi digitado um valor numérico em um TextBox :

If IsNumeric(txtIdade.Text) = False Then

MessageBox.Show("Você precisa digitar um número nesse campo!")

End If

Uma função Sim ou Não em VB.NET

' Vb.Net

' Função SimOuNao( "Pergunta" ) ---> Retorna True se responder sim

' e False ser responder não

Function SimOuNao(ByVal strPergunta As String) As Boolean

If MessageBox.Show(strPergunta, "Pergunta...",

MessageBoxButtons.YesNo) = Windows.Forms.DialogResult.Yes Then

Return True

Else Return False

End If

End Function

- Você pode chamar a função assim:

If SimOuNao("Tem certeza que deseja sair?") = True Then

Me.Close()

End If