Sei sulla pagina 1di 63

Programao Estruturada

Visual Studio 2005 VB.Net

Prof. Carlos Bueno


CBUENO_SP@YAHOO.COM.BR

Verso 1.2 15/09/2009

1 Programao Estruturada VB.Net

Ol Mundo
Quase todos os autores de livros e artigos sobre programao, seja qual for a linguagem, utilizam um programa muito conhecido para demonstrar os primeiros passos do desenvolvimento, o clssico Ola Mundo... (Hello World! em ingls), que tem por objetivo exibir uma mensagem com este texto no monitor. Comigo no ser diferente, aps instalar o Visual Studio 2005 voc j pode desenvolver suas aplicaes em VB.Net, portanto, vamos ao nosso primeiro programa. Nota: Antes de comearmos, vamos criar um diretrio na pasta raiz do sistema, ou do seu PenDrive, com o seguinte nome: aulasvbnet. Dentro desse diretrio vamos criar todos os nossos exerccios. Vamos comear 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 Localizao: c:\aulasvbnet (se na sua verso no aparece essa opo, no se preocupe, ele ir perguntar o caminho quando salvar pela primeira vez) Deixe marcada a opo: Create directory for solution Depois clique no boto OK conforme imagem abaixo.

2 Programao Estruturada VB.Net

Na tela seguinte, note que automaticamente ele cria um formulrio de nome Form1. Localize nesta tela as seguintes janelas: Toolbox, Solution Explorer e Properties. Caso j no estejam visveis, acesse-as pelo menu View. A janela Toolbox possui todos os objetos disponveis para criar seu programa. A janela Solution Explorer mostra todos os arquivos envolvidos no seu programa, como formulrios, classes e mdulos. A janela Properties exibe as propriedades dos objetos selecionados.

3 Programao Estruturada VB.Net

Com o formulrio Form1 selecionado, clique na janela Toolbox e escolha o objeto Label, depois com um clique no formulrio 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 boto na barra de ferramentas que tem um smbolo com vrios 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 tambm pressionar a tecla de funes F5. Se voc no cometeu nenhum erro, seu programa ser compilado e uma janela com a mensagem Ola Mundo...! aparecer.

4 Programao Estruturada VB.Net

Execcio: Para se familiarizar com as propriedades dos objetos, selecione o label1 e procure a propriedade Font, clique no boto [...] que aparece na frente para abrir a janela de configurao de fonte e faa ai algumas alteraes a seu gosto, depois execute o programa para testar. Dica: Dentro do diretrio Bin\Debug tem um arquivo com a extenso .EXE que o executvel do seu programa, que pode ser distribudo.

5 Programao Estruturada VB.Net

Trabalhando com objetos em VB.NET (Classes)


Tipo Projeto: Nome do Projeto: Local do Projeto: Create directory for solution Windows Application aula002 c:\aulasvbnet\aula002 Marcado

A Classe form. Ao ser iniciado um novo projeto "Windows Application" no VB.Net, um formulrio chamado de Form1 adicionado automaticamente ao seu projeto. Vamos ver algumas propriedades do objeto. 1 - Rode a aplicao (F5) e veja como o formulrio se apresenta, faa alguns testes, do tipo minimizar, maximizar, redimensionar e fechar [ X ]; 2 - Vamos alterar algumas propriedades e testar:
Propriedade Name Text WindowsState Valor frmPrincipal Testando o Formulrio Maximized

3 - Mude a cor do fundo para amarelo, propriedade BackColor, teste o seu formulrio. 4 - Mude a propriedade StartPosition para CenterScreen, teste e veja o que aconteceu. Tente solucionar o problema. 5 - Vamos colocar um cone em nosso formulrio. Copie um arquivo de cone (extenso .ico) para uma pasta de trabalho definido por voc (pode ser a do prprio projeto). Mude a propriedade Icon do formulrio clicando nos trs 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.

6 Programao Estruturada VB.Net

Agora vamos colocar um outro objeto dentro do objeto form: Na janela toolbox, procure o objeto button e o inclua no formulrio principal, em seguida altere as seguintes propriedades:
Propriedade Name Text BackColor Valor btnSair &Sair (para que serve esse &?) System / Control

Execute o seu programa e clique no boto Sair para finalizar o programa. No funcionou? Que estranho! O que est faltando? Mais pra frente vocs iro aprender alguma coisa sobre eventos para solucionar esse problema.

7 Programao Estruturada VB.Net

Maximize seu formulrio e veja que o local onde o boto btnSair est no ficou muito legal, alias ficou horrvel. Temos uma propriedade do objeto Button que resolve esse problema: Anchor.

Inverta a marcao conforme a imagem, clicando no local destacado para marcar e clicando no local sinalizado com cinza para desmarcar. Execute e maximize ou redimensione o formulrio para poder testar esse recurso.

8 Programao Estruturada VB.Net Voc deve ter notado que at o momento no escrevemos uma linha de cdigo sequer e j temos uma aplicao windows rodando com vrios recursos. Bem vindos ao VB.NET. Exerccio: Na pasta \bin\Debug tem um arquivo com a extenso .exe, faa algumas alteraes, 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 aplicao. Distribua sua aplicao windows para um colega seu. Ah! Ele no pode fazer alteraes no seu projeto. Que pena. Isso quer dizer que quem tem o cdigo 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 identificao dos objetos no cdigo fonte. Por exemplo: btn - Objeto button frm - Objeto form lbl - Objeto label txt - Objeto text mnu - objeto menu E assim por diante, isso no uma regra, mas bastante utilizado.

9 Programao Estruturada VB.Net

Trabalhando com eventos


Tipo Projeto: Nome do Projeto: Local do Projeto: Windows Application eventos c:\aulasvbnet\aula003

Eventos - Os eventos so funes executadas em um determinado momento, dependendo de seu tipo. Por exemplo, o evento Load do formulrio executado assim que o formulrio executado (antes deste ser exibido), o evento MouseDown quanto o boto pressionado, MouseUp quando o boto 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 relao dos principais eventos e suas respectivas funes: Click: um evento que executa quando algum clica sobre algum objeto. Dblclick: Executa aes quando algum clica duas vezes sobre algum objeto. Resize: Executa algum comando pr-estabelecido quando o usurio redimensiona o form. Load: Executa ordens sempre que o programa for carregado na memria. 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.

No se preocupe com esses nomes todos, vamos aprendendo a usar aos pouco, no preciso decorar nada.

10 Programao Estruturada VB.Net Vamos a um exemplo prtico no projeto que foi criado para essa parte:
Objetos Form Button1 Propriedade = Valor Name = frmPrincipal Text = Trabalhando com Eventos Name = btnSair Text = &Sair

Coloque o seguinte cdigo no evento click do boto: btnsair


Me.Close()

Teste o programa e veja o evento click funcionando. Continuando. No evento DoubleClick do formulrio frmPrincipal, coloque o seguinte cdigo:
Messagebox.Show("Clicando duas vezes no formulrio!")

Execute e d um duplo clique no formulrio. No evento FormClosing do formulrio frmPrincipal, coloque o seguinte cdigo:
MessageBox.Show("Estou Saindo!!!")

Execute e d um duplo clique no [X] ou no boto Sair. Dicas: - Para colocar o cdigo em um evento click do boto, em tempo de criao do projeto, basta dar dois cliques no boto e voc vai parar no editor de cdigo j com o evento criado.

11 Programao Estruturada VB.Net Exerccio: Vamos a mais um exemplo usando evento, e aproveitamos para aprofundar nossos conhecimentos de propriedades. Crie um novo projeto em VB.NET com as especificaes abaixo e coloque os seguintes objetos no formulrio:
Tipo Projeto: Nome do Projeto: Local do Projeto: Windows Application exeventos c:\aulasvbnet\aula003

Objetos Form Button TextBox Label Listbox

Propriedade = Valor Name = frmPrincipal Text = Trabalhando com Eventos Name = btnIncluir Text = &Incluir Name = txtNome Text = Text = Nome: Name = lstNomes

12 Programao Estruturada VB.Net No evento Load do formulrio vamos colocar o seguinte cdigo:
txtNome.Text = "" Me.lstNomes.Items.Clear()

E no evento Click do boto incluir, o seguinte cdigo:


lstNomes.Items.Add(txtNome.Text)

Teste o seu exerccio, ele deve estar como na figura abaixo:

Dicas: - Seria bom incluir uma instruo para limpar o texto j processado e fazer o foco da prxima ao parar no local de digitao. Para isso inclua o seguinte cdigo no boto incluir:
txtNome.Text = "" txtNome.Focus()

13 Programao Estruturada VB.Net

Trabalhando

com

Variveis,

constantes

outros conceitos
Constantes, Variveis e Tipos de Dados Variveis e constantes so os elementos bsicos que um programa manipula. Uma varivel um espao reservado na memria do computador para armazenar um tipo de dado determinado. Variveis devem receber nomes para poderem ser referenciadas e modificadas quando necessrio. Um programa deve conter declaraes que especificam de que tipo so as variveis que ele utilizar e s vezes um valor inicial. Os tipos podem ser, por exemplo: inteiros, reais, caracteres, etc. As expresses combinam variveis e constantes para calcular novos valores. Constantes Constante um determinado valor fixo que no se modifica ao longo do tempo durante a execuo de um programa. Conforme o seu tipo, a constante classificada como sendo numrica, lgica e literal. Exemplo de constantes:

Variveis Varivel a representao simblica dos elementos de certo conjunto. Cada varivel corresponde a uma posio de memria, cujo contedo pode se alterado ao longo do tempo durante a execuo de um programa. Embora uma varivel (um endereo de memria) possa assumir diferentes valores, ela s pode armazenar um valor a cada instante.

14 Programao Estruturada VB.Net Tipos de Variveis As variveis e as constantes podem ser basicamente de trs tipos: Numricas, Alfanumricas ou lgicas. Numricas Especficas para armazenamento de nmeros, que

posteriormente podero ser utilizados para clculos. Podem ser ainda classificadas como Inteiras ou Reais. As variveis do tipo inteiro so para armazenamento de nmeros inteiros e as Reais so para o armazenamento de nmeros que possuam casas decimais. Alfanumricas - Especficas para dados que contenham letras e/ou nmeros. Pode em determinados momentos conter somente dados numricos ou somente literais. Se usado somente para armazenamento de nmeros, no poder ser utilizada para operaes matemticas. Lgicas - Armazenam somente dados lgicos que podem ser Verdadeiro ou Falso. Declarao de Variveis As variveis s podem armazenar valores de um mesmo tipo, de maneira que tambm so classificadas como sendo numricas, lgicas e literais. Decidindo sobre o nome das variveis: Um nome de varivel no pode ter espaos, em vez disso use o caractere sublinhado para conectar as palavras: Ex.: Saldo, Saldo_da_Conta, ou TotalRelatorio Algumas linguagens so sensiveis distino entre maisculas e minsculas. Ex.: XYZ, xyz (so duas variveis em C, mas so as mesmas em VB, portanto cuidado ao criar variveis). Utilizando nmeros em nomes de variveis. Voc pode usar nmeros em qualquer parte do nome de uma varivel exceto como primeiro caractere. Ex.: windows_98, Saldo1, caixa2

15 Programao Estruturada VB.Net Identificadores proibidos: Nas linguagens de programao, determinadas palavras-chave so bsicas s funes do compilador. Voc no pode utilizar estas palavras reservadas como nome de variveis. Ex.: for, while, do (do Visual Basic), begin, end, program (no Delphi ). O tipo da varivel Aps decidir sobre o nome da varivel, voc tambm deve decidir sobre o tipo da varivel. Um tipo descreve como uma varivel ser utilizada e que tipo de informao ela pode armazenar. Todas as declaraes de variveis devem vir antes do cdigo onde so utilizadas. Nota: Algumas linguagens no possuem declaraes de variveis ou consideram a declarao opcional, na primeira vez que o compilador v uma varivel, ele determina tanto baseado no contexto como na primeira letra da varivel que tipo ela e qual o valor ela deve ter quando for utilizada pela primeira vez. A declarao das variveis impede o uso de variveis de forma errada ou que no existem, pois o compilador encontra essas variveis e emite um aviso de erro durante a compilao. Exemplos de variveis e atribuio de contedos

Debito = 0 Saldo_inicial = 0 Contador = 1000 Mensagem = "Voc tem certeza ? " Saldo = Credito - Debito

16 Programao Estruturada VB.Net Exerccios 1) Declare duas variveis numricas atribuindo valores a elas no evento Load do formulrio. 2) Qual das variaveis est com contedo errado 1. ( ) Nome = 154 2. ( ) Cliente = "Ana Maria" 3. ( ) Valor = 1200 4. ( ) Divida = Cliente + Valor Para declarar variveis em VB.Net usamos a instruo Dim seguida do nome da varivel, do tipo e o valor inicial da mesma. Com isso estamos dizendo ao VB.Net que reserve um local da memria para guardar valores. Exemplos: Variveis
Dim AvisoErro As String AvisoErro = "Nome no encontrado..." Dim Idade As Integer = 30

Constantes
Const AnoBase As Integer = 2005 Const LOCAL_DADOS As String = "c:\prog\Dados"

Dicas: - No esquea de fazer os exerccios das aulas e praticar.

17 Programao Estruturada VB.Net Exemplo: Crie o projeto abaixo e coloque os objetos como indicado.
Tipo Projeto: Nome do Projeto: Local do Projeto: Windows Application Calculadora c:\aulasvbnet

Objetos Form Button TextBox TextBox Label Label Label Label

Propriedade = Valor Name = frmPrincipal Text = Calculadora Name = btnSomar Text = &Somar Name = txtvalor1 Text = Name = txtvalor2 Text = Name = lblTotal Text = 0 Text = Valor 1: Text = valor 2: Text = SOMA:

18 Programao Estruturada VB.Net Agora, no evento Click do boto Somar coloque o seguinte cdigo:
Dim intTotal As Integer intTotal = Integer.Parse(txtValor1.Text) + Integer.Parse(txtValor2.Text) lblTotal.Text = intTotal.ToString

A funo destacada Integer.Parse tem o objetivo de converter o texto passado de string para Inteiro e a propriedade ToString tem a funo de converter para string o valor calculado na varivel intTotal antes de mostrar no label. Veja que em VB.NET todas as variveis so tratadas como objetos. ATENO: Veja a tabela de Operadores aritmticos e a ordem de precedncia dos mesmos. Praticando: 1 Faa o seguinte programa: Crie um formulrio que pea 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 Faa 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

19 Programao Estruturada VB.Net

Trabalhando com estruturas de controle (If / Case)


A Instruo IF THEN ELSE A instruo IF pode ser usada para executar uma instruo quando a condio for verdadeira (If/Then Se/Ento), ou para escolher entre duas opes (IfThen-Else, Se-ento-seno). A condio deve ser uma expresso booleana (lgica). Sintaxe:
IF condio [ THEN ] [ ao ] Else [ ao ] End If

Veja no final da apostila a tabela de operadores relacionais / Lgicos usados nas condies do comando IF. A Instruo SELECT CASE A instruo SELECT CASE foi projetada para tornar fcil testar vrios valores possveis de uma determinada varivel ou expresso. Entretanto ela no permite que sejam avaliados os valores possveis para mais do que uma expresso, como a instruo IF faz. A sintaxe a seguinte:
Select Case Expresso Case valor1 ' Instrues Case valor2 ' Instrues Case valor3 ' Instrues Case Else ' Instrues End Select

a serem executadas a serem executadas a serem executadas a serem executadas

A sintaxe simples, mas h algumas opes e escolhas sutis que os desenvolvedores devem levar em considerao quando estiverem codificando.

20 Programao Estruturada VB.Net Primeiro, a expresso de teste deve ter mais de dois resultados, caso contrrio, a instruo IF seria a melhor escolha. Em segundo lugar, a instruo CASE ser avaliada at que uma condio verdadeira tenha sido encontrada ou CASE ELSE seja executada. Com isso em mente, voc deve colocar as instrues case em ordem de probabilidade, ou seja, as que tm mais chance de ocorrer so codificadas primeiro. A instruo case pode conter expresses bastante complexas, e possui diversas variaes, como ilustrado a seguir: Expresso simples
Case 8

Varios tens
Case 8,4,0

Intervalos
Case 6 to 19

Expresso de comparao:
Case Is > 12

Expresso composta:
Case 5, 8, 11 To 14, Is > 40

Exerccios: Considerando para esse exerccio 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: Nome do Projeto: Local do Projeto: Windows Application Verificador c:\aulasvbnet

21 Programao Estruturada VB.Net


Objetos Form Button TextBox TextBox Label Label Label Label Propriedade = Valor Name = frmPrincipal Text = Verificador de Idade Name = btnVerificar Text = &Verificar Name = txtNome Text = Name = txtIdade Text = Name = lblSituacao Text = Text = Nome: Text = Idade: Text = Situao:

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

No evento Click do boto Verificar coloque o seguinte cdigo:


If Integer.Parse(txtIdade.Text) > 18 Then lblSituacao.Text = "Maior" Else lblSituacao.Text = "Menor" End If

22 Programao Estruturada VB.Net O seguinte cdigo pode ser colocado no evento Validating do objeto txtIdade para evitar que se tente entrar com uma idade que no seja numrica.
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 exerccio voc perceber que o seu programa pode tomar uma deciso, ou seja, adotar um caminho a seguir. Praticando: 1 Faa um programa que receba vrios nmeros e imprima qual o maior. 2 Um empresrio 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 Faa um programa que o usurio entre com o valor da compra e a tela informe o desconto e o valor a cobrar.

23 Programao Estruturada VB.Net

Trabalhando com Sub e Functions


Os mtodos so aes que um objeto executa. H dois tipos de mtodos no VB.Net: Os procedimentos (mais conhecidos como SUBs) e as funes. Um recurso de organizar um cdigo uso de SUBROTINAS ou FUNES. O uso de Function essencialmente igual a funes embutidas, tipo isNumeric ou CDate, s que cada programador pode criar de acordo com sua necessidade. A estrutura bsica de uma funo :
[ Private/Public ] Function nome([ arglista ]) [ As tipo ] [ ao ] [ Exit Function ] [ ao ] End Function [ Private/Public ] Sub nome([ arglista ]) [ ao ] [ Exit Sub ] [ ao ] 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 funo que o programador define. (arglista) so argumentos da funo, [As tipo] o tipo de valor retornado pela funo. Exemplo:
Function SomaAB(ByVal a As Double, ByVal b As Double) As Double Return (a + b) End Function

Sub - A caracterstica principal das subs o no retorno de valores. Exemplo:


Sub MessagemOk() MessageBox.Show("Operao realizada com sucesso!") End Sub Sub Messagem(ByVal strMsg As String) MessageBox.Show("Msg: " & strMsg) End Sub

24 Programao Estruturada VB.Net Exerccios: Crie o projeto abaixo e coloque os objetos como descrito:
Tipo Projeto: Nome do Projeto: Local do Projeto: Windows Application Funcoes c:\aulasvbnet

Objetos Form Button TextBox TextBox TextBox Label Label Label Label Label Label

Propriedade = Valor Name = frmPrincipal Text = Exemplo de Funes Name = btnCalcular Text = &Calcular Name = txtNumero1 Text = Name =txtNumero2 Text = Name =txtNumero3 Text = Text = Numero-1 Text = Numero-2 Text = Numero-3 Text = Soma: Text = Mdia: Text = name = lblSoma Fonte = Tahoma, Negrito, 12, vermelho Text =

Label

name = lblmedia Fonte = Tahoma, Negrito, 12, vermelho

25 Programao Estruturada VB.Net

Antes aproveite e digite as funes 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 boto Calcular coloque o seguinte cdigo:


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

26 Programao Estruturada VB.Net

Trabalhando com Estruturas de repetio Laos


For - O loop for no VB baseia-se estritamente em um contador, o qual pode ser aumentado ou diminudo cada vez que o loop for executado. O contador inicializado e o loop ir se repetir enquanto o contador no chegar ao fim da contagem. O seu formato bsico :
For contador [ As TipoDado ] = Inicio To Fim [ Step passo ] [ Instrues ] [ Exit For ] [ Instrues ] Next [ contador ]

Exemplo For:
Dim i As Integer For i = 1 To 30 lstLista.Items.add(i.ToString) Next i

While - um comando de repetio que no possui controle de um contador e que testa a condio antes de executar o loop. Este loop ir se repetir enquanto a condio seja verdadeira, existe a possibilidade de que ele nunca venha a ser executado. A sua forma bsica :
While Condio [ Instrues ] 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)

27 Programao Estruturada VB.Net Dicas: - Quando utilizamos laos numricos (for) muito comum que a varivel do lao seja especfica para esta finalidade. Ento, ao invs de fazermos um dim com uma varivel especfica para isso podemos declarar a varivel diretamente na instruo do lao, veja como fica:
For i As Integer = 1 To 100 [ Cdigo ] Next i

A varivel i se torna uma varivel com escopo de bloco, ento ela s vlida dentro do lao, fora do lao a varivel no existe. Exerccios: Vamos criar um exemplo usando a instruo (comando) for. Crie o projeto abaixo e coloque os objetos como descrito:
Tipo Projeto: Nome do Projeto: Local do Projeto: Windows Application Repeticao c:\aulasvbnet

Objetos Form Button ListBox

Propriedade = Valor Name = frmPrincipal Text = Exemplo FOR Name = btnIniciar Text = Iniciar Name = lstLista Text =

28 Programao Estruturada VB.Net

No evento Click do boto Iniciar coloque o seguinte cdigo:


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 (contedo alfa numrico) usando o & para conectar duas ou mais Strings. Por exemplo:
var1 = "Ola " var2 = "Mundo...!"

var1 & var2 vai ter como contedo: Ola Mundo...! O mesmo exemplo usando a instruo 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 programao como contador End While

29 Programao Estruturada VB.Net Praticando: 1 Faa um programa que mostre todos os nmeros pares entre 7 e 46, use For. 2 Altere o programa acima para mostrar tambm a soma total desses valores. 3 Faa um programa que mostre todas as tabuadas do 1 ao 10.

30 Programao Estruturada VB.Net

Criando um pequeno Editor em VB.NET


Tipo Projeto: Nome do Projeto: Local do Projeto: Windows Application Editor c:\aulasvbnet

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


Objetos Form Propriedade = Valor Name = frmPrincipal Text = Editor Simples de textos Name = txtTexto TextBox Multiline = True Text = Button Label TextBox name = btnSalvar Text = &Salvar Text = Arquivo: Name = txtArquivo Text =

Distribua os objetos como na figura abaixo:

31 Programao Estruturada VB.Net 1) No incio 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 boto Salvar coloque o seguinte cdigo:


Dim oeditor As StreamWriter oeditor = File.CreateText(txtTexto.Text) oeditor.Write(txtarquivo.Text) oeditor.Close()

Dicas: - Pesquise como ler o contedo de um arquivo, usando o tipo streamreader.

32 Programao Estruturada VB.Net

Um pouco de matemtica
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 no vo ser to teis assim. 1) Faa um programa que calcule o Delta da frmula de Bhskara:

Todas as informaes vistas na imagem acima devem aparece no seu programa. Os fontes desse programa no foram colocados aqui de propsito. Dicas: - No final desta apostila tem vrias tabelas teis para voc resolver os problemas.

33 Programao Estruturada VB.Net

Trabalhando com banco de dados


Iremos ver agora uma viso geral do extenso suporte a bancos de dados do VB.NET. Conceitos Bsicos Antes de iniciarmos preciso conhecer os conceitos bsicos relacionados aos bancos de dados. No pretendo esgotar o assunto, mas dar uma viso geral para facilitar a compreenso dos prximos tpicos. Sistema gerenciador de banco de dados (SGBD): Programa usado para guardar, organizar e recuperar dados. Ex.: MS-SQL Server, Oracle, Sybase, etc. Estrutura lgica do banco de dados: Definio dos dados que o banco de dados vai conter, especificando tabelas, colunas, relacionamentos, etc (M.E.R. e D.E.R). Estrutura fsica do banco de dados: Arquivos onde os dados so gravados. Ex.: No Paradox cada tabela corresponde a um arquivo com extenso *.db; no Access vrias tabelas so agrupadas em um nico arquivo com extenso *.mdb. Tabela: Tabelas so agrupamentos de dados afins dentro da estrutura lgica. As tabelas so divididas em linhas e colunas. Ex.: Uma tabela de clientes agrupa dados de todos os clientes cadastrados. Cada linha da tabela de clientes contm dados de um cliente especfico. Cada coluna da tabela de clientes representa um atributo dos clientes o nome, o cdigo, o logradouro, etc. Abaixo vemos o fluxo bsico dos passos e objetos necessrios para integrar uma aplicao VB.NET ao banco de dados.

34 Programao Estruturada VB.Net


CONEXO Aplicao VB.NET

Banco de Dados

COMANDO

LISTA

O primeiro passo criar um objeto que far a conexo com o banco de dados. Este objeto far a ponte para o envio de comandos da aplicao para o banco de dados. Para isso, devemos informar a este objeto todas as informaes de como achar o banco, tais como tipo de provedor de acesso, endereo do servidor, usurio e senha. Estas informaes so passadas atravs da String de Conexo (ou Connection String). O formato tpico de uma string de conexo : "Provider=Microsoft.Jet.OLEDB.4.0;DataSource=nomeDatabase;User ID = meuUsuario; Password = minhaSenha;". Com o objeto devidamente configurado, devemos abrir a conexo, e se todos os dados estiverem corretos, a ligao com o banco de dados ser bem sucedida. Em segundo, para executarmos modificaes e consultas no banco de dados, precisamos criar um objeto de Comando. Este objeto o responsvel por enviar as instrues SQL ao banco e retornar os resultados da execuo. Para saber em qual banco de dados o comando ser executado, ele utiliza o objeto de conexo como ponte. Se os comandos forem de modificao no banco (INSERT, UPDATE, DELETE), o objeto de comando retorna um nmero inteiro contendo quantas linhas foram afetadas na tabela. Se a instruo 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 captulo de Instrues SQL no final desta apostila.

35 Programao Estruturada VB.Net ADO.NET A partir desse ponto vamos tratar do acesso a dados em VB.NET, fazendo uso do novo modelo de acesso a dados includo na plataforma .NET, o ADO.NET. Vamos aprender as tarefas bsicas para acesso a dados com aplicaes baseadas em formulrios 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 no 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 integrao com o padro XML (facilita a troca de informas 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 - Contm dados As Data Classes, contm os dados mas no sabem nada a respeito de como obter os dados, no esto conectadas ao banco de dados. A principal classe que contm dados a classe DataSet, que funciona como um banco de dados em memria. Ele contm objetos do tipo DataTable que refletem as tabelas do banco de dados, com linhas e colunas.

36 Programao Estruturada VB.Net Managed Provider - Acessam os dados Usadas para ler e escrever em banco de dados. As classes do Manager Provider so usadas para acessso direto ao SQLServer e bancos OLEDB. As classes tm sempre um prefixo que identifica a famlia a qual pertencem: Classe SqlCommand OleDbCommand SqlConection OleDbConection SqlCommandBuilder OleDBCommandBuilder SqlDataReader OleDbDataReader SqlDataAdapter OleDbDataAdapter SqlParameter OleDbparameter SqlTransaction OleDbtransaction Descrio Classe que representa um comando SQL (INSERT, SELECT, Etc.) Classe que representa a etapa de cneo com um provedor de dados. Gerador de comandos SQL de incluso, alterao e excluso atravs de uma consulta SQL de seleo de dados. Um leitor de dados forward only (somente para frente), conectado base de dados. Classe adaptadora entre um objeto DataSet e seus opcionais fsicos na base de dados (select, insert, update e delete). Define os parmetros usados no na chamada a procedimentos procedures). Gerenciamento de transaes a serem realizadas em uma base de dados. armazenados banco (stored

37 Programao Estruturada VB.Net

Trabalhando com banco de dados Na prtica


Agora vamos definir um problema fictcio e a partir dele ser criado um programa para exemplificar o acesso ao banco de dados no VB.NET. Vamos considerar um sistema para movimentao de estoque, onde o objetivo cadastrar os produtos de um estabelecimento e controlar entrada e sada dos mesmos. Aps 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 aplicao no tenha um bom resultado.

PRODUTO CD_PRODUTO DS_PRODUTO DS_UNIDADE PRECO_CUSTO PRECO_VENDA QT_ESTOQUE QT_MINIMO NUMERIC(4) <pk> CHAR(50) CHAR(2) NUMERIC(8,2) NUMERIC(8,2) NUMERIC(8,2) NUMERIC(8,2)

MOVIMENTO CD_MOVIMENTO CD_PRODUTO DATA_MOVIMENTO TIPO QUANTIDADE NUMERIC(4) <pk> NUMERIC(4) <fk> DATETIME CHAR(1) NUMERIC(8,2)

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 caractersticas:
Tipo Projeto: Nome do Projeto: Local do Projeto: Windows Application AdmEstoque c:\aulasvbnet

38 Programao Estruturada VB.Net Agora vamos vincular um banco de dados nossa aplicao. 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 conexo.

39 Programao Estruturada VB.Net 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 boto Browse.

40 Programao Estruturada VB.Net

Clique em OK para concluir a conexo. Ao voltar para a tela de escolha de conexo, clique em Next.

41 Programao Estruturada VB.Net Obs.: Para as conexes que usam arquivos, como o access, o .net pergunta se voc quer incluir este arquivo na sua soluo. O nico problema que quando executamos a aplicao, o .net copia esta arquivo para a pasta de execuo, limpando o bando de dados que havamos modificado pela aplicao. Portanto, ao perguntar se deseja copiar, cliquem em No.

Clique em Next para salvar a string de conexo.

Selecione agora as tabelas que iremos usar e ento Finish.

42 Programao Estruturada VB.Net

Sua janela de Data Sources ficar mais ou menos assim:

Um novo arquivo foi adicionado sua soluo, o app.config. Este arquivo formatado em XML e agora armazena a sua string de conexo (tag <connectionStrings>).

43 Programao Estruturada VB.Net

Com nosso banco de dados criado e vinculado nossa aplicao, podemos comear a montar as telas. Renomeie o formulrio padro, de Form1 para frmPrincipal, na janela Solution Explorer. Abra-o e altere a propriedade isMdiContainer para True. Adicione ao formulrio um objeto do tipo MenuStrip e monte o menu de nossa aplicao (digite na rea indicada com Type Here) com a seguinte hierarquia: Cadastros o Produtos Movimentao o Entrada o Sada Sair

44 Programao Estruturada VB.Net

Com um duplo clique no menu Sair, cria-se automaticamente o evento clique do mesmo. Codifique a sada 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 formulrio soluo, pelo menu Project>Add Windows Form e d o nome de frmCadProduto. Codifique o evento click do menu Produtos para executar este novo formulrio.
Private Sub ProdutosToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ProdutosToolStripMenuItem.Click frmCadProduto.MdiParent = Me frmCadProduto.Show() End Sub

45 Programao Estruturada VB.Net Monte os campos de acordo com o que foi modelado na tabela e adicione um boto Salvar. No se esquea de nomear todos os objetos.

Como o objetivo demonstrar o acesso ao banco de dados, no vamos nos preocupar em validar os campos neste momento, mas uma tima hora para praticar. Para usarmos os objetos de acesso a dados, precisamos importa-los para dentro do formulrio, para isso colocamos na primeira linha do cdigo o comando Imports com a biblioteca que iremos usar. Para acessar o access, usamos as colees OleDb e para Sql Server as SqlClient. O comando ento este, para o nosso exemplo.
Imports System.Data.OleDb

46 Programao Estruturada VB.Net Para facilitar a reutilizao do cdigo, vamos criar funes que executam tarefas repetitivas. Como sempre precisamos abrir a conexo, vamos criar uma funo que faa esta parte e daremos o nome de ConectaBanco. Tambm declaramos uma varivel de conexo no contexto do form, para ser utilizada em todas as funes que criarmos.
Imports System.Data.OleDb Public Class frmCadProduto 'Declaramos um objeto de conexo comum ao formulario todo Dim objConexao As OleDbConnection

Agora o cdigo da funo ConectaBanco.


'Sub rotina para conectar no banco de dados Private Sub ConectaBanco() 'Criamos o objeto na memria 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 conexo 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 insero dos dados. Portanto vamos ao evento click do boto 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 usurio.


Private Sub btnSalvar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSalvar.Click 'Chama o mtodo de conexo Call ConectaBanco() 'Declaramos um objeto de comando Dim objComando As OleDbCommand 'Criamos o objeto na memria objComando = New OleDbCommand 'Configuramos a conexo objComando.Connection = objConexao 'Montamos o comando objComando.CommandText = "INSERT INTO PRODUTO(CD_PRODUTO, DS_PRODUTO, DS_UNIDADE, PRECO_CUSTO, PRECO_VENDA, QT_ESTOQUE, QT_MINIMO)

47 Programao Estruturada VB.Net


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 comando Dim intQtd As Integer 'Novamente o Try para evitar erro na aplicao 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 numricos precisamos trocar o caracter , por ., pois seno o comando entende que outro valor aps a virgula. Ento usamos a funo Replace da classe String, ficando txtMinimo.Text.Replace(",", "."). Pronto, podemos executar o programa e inserir os registros no banco de dados, mas lembrem-se, no validamos os dados, portanto para teste informem corretamente os campos numricos com nmeros. Os comandos Update e Delete utilizam o mesmo cdigo, mudando somente a propriedade CommandText do objeto de comando. Mais uma vez, para reutilizarmos cdigo, podemos montar uma funo 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 mtodo de conexo Call ConectaBanco() 'Declaramos um objeto de comando Dim objComando As OleDbCommand 'Criamos o objeto na memria objComando = New OleDbCommand 'Configuramos a conexo objComando.Connection = objConexao 'O comando foi montado ao chamar a funo '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 aplicao Try

48 Programao Estruturada VB.Net


'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

Para chamar o mtodo basta usar o prefixo Call e passar os parmetros necessrios. Para o insert chamamos assim:
'Chama a funo ExecutaComando passando o texto do comando insert Call 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 botes, 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 ento aprender como recuperar os dados da tabela usando o comando Select. O funcionamento praticamente o mesmo, o que muda o retorno da execuo do comando, que ir montar um objeto Lista com os dados do select executado. Coloque um boto Selecionar na frente do textbox cdigo. Este boto ir consultar na tabela o produto correspondente ao cdigo digitado pelo usurio. O evento click fica assim.
Private Sub btnPesquisar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPesquisar.Click 'Chama o mtodo de conexo Call ConectaBanco() 'Declaramos um objeto de comando Dim objComando As OleDbCommand 'Criamos o objeto na memria objComando = New OleDbCommand 'Configuramos a conexo objComando.Connection = objConexao 'O comando foi montado ao chamar a funo '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

49 Programao Estruturada VB.Net


'O retorno ser uma lista de registros Dim objLista As OleDbDataReader 'Novamente o Try para evitar erro na aplicao 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.

50 Programao Estruturada VB.Net Com o cadastro de produtos terminado, vamos programar a tela de movimentao de estoque.

51 Programao Estruturada VB.Net

Tabelas teis
Operadores Aritmticos - Ordem de precedncia: Operador Aritmtico /Concatenao ^ *, / \ Mod +, - String + & <<, >> Ordem Exponenciao Negao Multiplicao e Diviso Diviso Inteira Modulo Aritmtico - Resto da diviso Adio subtrao - Concatenao String Concatenao String Bit Shift - Aritmtico

Obs.: Voc pode usar os parnteses para alterar a ordem de precedncia. Por exemplo: ValorCompra - ((ValorCompra * Desconto) / 100) Operadores Relacionais / Lgicos - Retornam um valor booleano True / False: Operador = <> < > <= >= Operador Lgico AND OR NOT Descio Igual Diferente Menor Maior Menor ou Igual Maior ou Igual Descrio Operador E Operador OU Operador NO

52 Programao Estruturada VB.Net

Instrues SQL
O SQL foi desenvolvido para ser uma linguagem padro para operaes com Banco de Dados. A lingagem SQL foi elaborada para ser independente de hardware ou do software. Ao usar o SQL, voc no precisa saber a respeito do software de banco de dados ou do hardware envolvido em uma operao. Tudo o que voc precisa conhecer so os comandos/instrues SQL padro para solicitar informaes, que obrigatoriamente o mesmo em todos os sistemas que utilizam o SQL. Nota: Na prtica existem pequenas diferenas 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 vrios registros a uma tabela do Banco de Dados. A sintaxe para a execuo : INSERT INTO nome-tabela [(nome-coluna, ...)] VALUES (relao dos valores a serem includos) onde: nome-tabela - Representa o nome da tabela onde ser includa o registro. nome-coluna - Representa o nome da(s) coluna(s) tero contedo no momento da operao de incluso. Relao dos valores - Representa os valores a serem includos na tabela. Obs.: Este comando pode ser executado de duas maneiras: Quando todos os campos da tabela tero contedo - Neste caso no necessrio especificar as colunas, entretanto a relao dos valores a serem includos devero obedecer a mesma seqncia da definio da tabela. Por exemplo:

53 Programao Estruturada VB.Net INSERT INTO Alunos VALUES (1, "Carlos Bueno", "123456789", "R. Aliviere 480", 06/07/1980, "145423006") Quando apenas parte dos campos da tabela tero contedo - Neste caso devem ser especificadas todas as colunas que tero contedo e os valores relacionados devero obedecer esta seqncia. Para os campos que no tem contedo 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 contedo para o campo> [,nome-coluna = <novo contedo para o campo>] WHERE condio onde: nome-tabela - Representa o nome da tabela cujo contedo ser alterado. nome-coluna - Representa o nome da(s) coluna(s) tero seus contedos alterados com o novo valor especificado. condio - Representa a condio para a seleo dos registros que sero atualizados. Esta seleo poder resultar em um ou vrios registros. Neste caso a alterao ir ocorrer em todos os registros selecionados.

54 Programao Estruturada VB.Net UPDATE especialmente til quando se quer alterar muitos registros. possvel alterar vrios campos ao mesmo tempo. O exemplo abaixo altera a descrio de um determinado curso. UPDATE Curso SET Descricao = Anlise de Sistemas WHERE codigo = 2

DELETE - Essa instruo permite remover (deletar) um ou um grupo de registros em uma tabela do Banco de Dados. Sintaxe: DELETE FROM nome-tabela WHERE condio onde: nome-tabela - Representa o nome da tabela cujos registros sero deletados. condio - Representa a condio para a deleo dos registros. Este seleo poder resultar em um ou vrios registros. Neste caso a operao ir ocorrer em todos os registros selecionados. Uma consulta de excluso exclui registros inteiros e no apenas dados em campos especficos. Se quiser excluir valores de um campo especfico, crie uma consulta atualizao que mude os valores para Null. Exemplo de instruo DELETE Esse exemplo exclui todos os registros de Professores cujo cdigo seja 1. DELETE FROM Professores WHERE codigo=1 Se fosse necessrio excluir um professor de nome especfico a estrutura seria assim DELETE FROM Professores WHERE nome=nome professor

55 Programao Estruturada VB.Net SELECT - A instruo SELECT a mais poderosa da linguagem SQL. Ela permite selecionar um conjunto de registros em uma ou mais tabelas que atenda a uma determinada condio definida pelo comando. Sua sintaxe : SELECT * FROM nome-tabela [AS APELIDO] [,nome-tabela] WHERE condio 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 sero selecionadas ou que sero utilizadas para a execuo da consulta. Apelido - Os nomes que sero usados como ttulos de colunas em vez dos nomes originais das colunas na tabela. condio - Representa a condio para a seleo dos registros. Este seleo poder resultar em um ou vrios registros. nome-coluna - Representa a(s) coluna(s) cujos resultados so grupados para atender consulta. (*) - Opo default. Mostra todos os valores (campos) obtidos na seleo. WHERE - Especifica o critrio de seleo dos registros nas tabelas especificadas. GROUP BY - Especifica o(s) campo(s) que sero grupados para atender a consulta. ORDER BY - Esta opo quando utilizada apresenta o resultado da consulta ordenado de forma crescente (ASC) ou decrescente (DESC) pelos campos definidos. Para executar esta operao, o programa principal de banco de dados procura a tabela ou tabelas especificadas, extrai as colunas escolhidas, seleciona as linhas que satisfazem o critrio e classifica ou agrupa as linhas resultantes na ordem especificada.

56 Programao Estruturada VB.Net A instruo SELECT no muda os dados no banco de dados. SELECT normalmente a primeira palavra em uma instruo SQL. A maior parte das instrues SQL so instrues SELECT. A sintaxe mnima da instruo 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 Freqentemente necessrio localizar registros em um banco de dados que satisfaam certos critrios de seleo. O SQL utiliza a clausula WHERE para especificar os critrios de seleo para a consulta. O formato mais simples para uma consulta com critrios : SELECT * FROM nome-tabela WHERE condio SELECT * FROM Alunos WHERE ano_nascimento < 1984 A condio da clusula WHERE pode conter os operadores <, >, <=, >=, <> e LIKE. O operador LIKE utilizado para coincidncia de padro, o que permite a busca de valores semelhantes ao digitado utilizando os caracteres curinga (* e ?). O asterisco indica qualquer nmero de caracteres em seqncia na posio do asterisco dentro do padro. J a interrogao indica um nico caracter na posio. Por exemplo, em uma tabela que temos os alunos Anderson, Andre e Manoel. SELECT * FROM Alunos WHERE nome LIKE ?n*

57 Programao Estruturada VB.Net 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 seqncia 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 padro ordem de classificao ascendente (A a Z, 0 a 9). Os dois exemplos abaixo classificam os nomes dos funcionrios 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 salrios e os classifica em ordem descendente. SELECT Sobrenome, Salrio FROM Funcionarios ORDER BY Salrio DESC, Sobrenome ORDER BY normalmente o ltimo item em uma instruo SQL. Voc pode incluir campos adicionais na clusula ORDER BY. Os registros so classificados primeiro pelo primeiro campo listado depois de ORDER BY. Os registros que tiverem

58 Programao Estruturada VB.Net valores iguais naquele campo so classificados pelo valor no segundo campo listado e assim por diante.

A Clausula GROUP BY Os dados resultantes de uma seleo podem ser agrupados de acordo com um critrio especfico. Este procedimento realizado usando a clusula GROUP BY. Apenas uma linha do grupo apresentada. Como condio de agrupamento somente podero aparecer itens do SELECT ou funes do grupo. Por exemplo, deseja-se saber o total de crditos cursados pelos alunos. Para resolver esse problema usamos uma funo 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 crditos est na tabela disciplinas, para cada aluno soma-se a quantidade de crditos das disciplinas que ele cursa.

Algumas funes utilizadas no comando SELECT. a. COUNT(*) (nome-campo) Retorna a quantidade de registros existentes no campo especificado. Quando a opo * 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 esto matriculados na disciplina de Analise de Sistemas I (cdigo da disciplina igual a 1).

59 Programao Estruturada VB.Net SELECT COUNT(cod_alu) AS Total FROM cursa WHERE cod_dis=1 Outro exemplo deseja-se saber quantas disciplinas so cursadas pelos alunos. 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 exemplo deseja-se saber quantos crditos (aulas por semana) o aluno Carlos (cdigo 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 crdito 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 mdia dos valores existentes no campo especificado. Por exemplo, deseja-se saber quantas aulas em mdia um aluno assiste por dia. SELECT AVG(Disciplinas.credito) AS [Media de Aulas] FROM Disciplinas

60 Programao Estruturada VB.Net d. MAX (nome-campo) Retorna o maior valor existente no campo especificado. Por exemplo, desejase saber qual aluno teve a nota mais alta na primeira prova da disciplina da Analise de Sistemas I (cdigo 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, desejase saber qual aluno teve a nota mais baixa na primeira prova da disciplina da Analise de Sistemas I (cdigo 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

61 Programao Estruturada VB.Net

Dicas de cdigo
Varias Dicas e Artigos - servem como fonte de pesquisa e informao, para quem j est programando. Como forar a digitao apenas de nmeros ou letras Permitir ao usurio digitar apenas letras ou nmeros. Se for para digitar apenas nmeros coloque esse cdigo no evento KeyPress
If (Char.IsDigit(e.KeyChar) = False) Then e.Handled = True End 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 nmeros, nada de ponto ou vrgula. Como pegar o caminho onde est rodando sua aplicao em VB.NET Se voc precisar do caminho atual onde est rodando o seu executvel .EXE Faa o seguinte:
Dim strCaminho As String strCaminho = Directory.GetCurrentDirectory() 'Por exemplo para mostrar no formulrio lblLocal.Text = strCaminho

Observao: Voc vai precisar do NameSpace: Imports System.IO

62 Programao Estruturada VB.Net Varias dicas para trabalhar com strings / TextBox 1) Para converter um texto para Minsculas faa o seguinte:
Dim strNomeCliente As String strNomeCliente = "Carlos Renato Rocha Bueno" lblNomeCliente.Text = strNomeCliente.ToLower()

2) Para converter um texto para Maisculas faa 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 numrico em um TextBox :


If IsNumeric(txtIdade.Text) = False Then MessageBox.Show("Voc precisa digitar um nmero nesse campo!") End If

Uma funo Sim ou No em VB.NET


' Vb.Net ' Funo SimOuNao( "Pergunta" ) ---> Retorna True se responder sim ' e False ser responder no 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 funo assim:


If SimOuNao("Tem certeza que deseja sair?") = True Then Me.Close() End If

Potrebbero piacerti anche