56
COLÉGIO TÉCNICO “ANTÔNIO TEIXEIRA FERNANDES” CTI - UNIVAP

COLÉGIO TÉCNICO “ANTÔNIO TEIXEIRA FERNANDES” CTI - … · Nesta apostila iremos manter (cadastrar / alterar / excluir / consultar) registros num banco de dados utilizando os

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: COLÉGIO TÉCNICO “ANTÔNIO TEIXEIRA FERNANDES” CTI - … · Nesta apostila iremos manter (cadastrar / alterar / excluir / consultar) registros num banco de dados utilizando os

COLÉGIO TÉCNICO “ANTÔNIO TEIXEIRA FERNANDES”

CTI - UNIVAP

Page 2: COLÉGIO TÉCNICO “ANTÔNIO TEIXEIRA FERNANDES” CTI - … · Nesta apostila iremos manter (cadastrar / alterar / excluir / consultar) registros num banco de dados utilizando os

Curso de Informática – Cti / UniVap

Vb.net 2008 – Professor Alberson Wander Sá dos Santos P

ágin

a

Sumário

3º Bimestre:

32 - Conceitos iniciais de Banco de Dados ......................................................... 101 33 – Sistemas Gerenciadores de Bancos de Dados.................................................... 102 34 – ADO.NET ......................................................................................................... 102 34.1 – Criando um banco de dados SQL-SERVER ..................................................... 103 34.2 – Criando tabelas no banco de dados SQL-SERVER ............................................. 107 34.3 – PROJETO CLIENTES ........................................................................................... 110 34.4 – Carregando dados de tabela em Caixas de Listagens ......................................... 122 34.5 – Objetos de acesso a bancos de dados ADO.NET ................................................ 125 34.5.1 – Objetos Connection ............................................................................................ 125 34.5.2 – Objetos Command ....................................................................................... 125 34.5.3 – Objetos DataReader ..................................................................................... 126

4º Bimestre: 35 – Caixas de Diálogos ................................................................................................... 127 35.1 – Caixa de Diálogo ABRIR... ..................................................................................... 128 35.2 – Caixa de Diálogo SALVAR ..................................................................................... 129 35.3 – Caixa de Diálogo CORES....................................................................................... 130 35.4 – Caixa de Diálogo FONTE..... ............................................................................ 131 35.5 – Programa Caixas de Diálogo ............................................................................ 132 36 – Objeto WebBrowser ............................................................................................ 135 37 – Manipulação de arquivo texto no vb.net ............................................................... 139 37.1 – A classe System.IO .......................................................................................... . 139 37.2 – Criando o arquivo texto .................................................................................... . 139 37.3 - Escrevendo num arquivo texto .......................................................................... . 140 37.4 – Abrindo um arquivo para leitura ......................................................................... 140 37.5 – Lendo um arquivo texto SEQUENCIALMENTE (Método ReadLine) ...................... 140 37.6 – Lendo TODO arquivo texto (Método ReadToEnd) .................................................. 141 37.7 – Programa GeraArquivoTexto ................................................................................... 141 38 – Classe FileSystem (manipulando arquivos) e executanto arquivos .exe ................... 144 39 – Criação de Barras de Menu ....................................................................................... 145 ANEXO 1- Novo projeto CLIENTES (3º BIMESTRE).. .................................................... 150

Page 3: COLÉGIO TÉCNICO “ANTÔNIO TEIXEIRA FERNANDES” CTI - … · Nesta apostila iremos manter (cadastrar / alterar / excluir / consultar) registros num banco de dados utilizando os

Curso de Informática – Cti / UniVap

Vb.net 2008 – Professor Alberson Wander Sá dos Santos P

ágin

a

3º BIMESTRE

31 – CONCEITOS INICIAIS DE BANCO DE DADOS

Antes de começarmos a trabalhar com banco de dados, devemos conhecer alguns conceitos

importantes, a saber:

• BANCO DE DADOS : Coleção organizada de informações, armazenadas em um ou mais arquivos OU

TABELAS (entidades).

• TABELAS (ou Entidades) : Formada por campos (Atributos).

• CAMPOS (ou Atributos) : Colunas que armazenarão dados.

• DADO: Especifica o conteúdo armazenado em cada campo da tabela.

• REGISTRO (ou Tupla) : Coleção de todos os dados armazenados nas LINHAS da tabela.

• DOMÍNIOS: Coleção de todos os dados gravados em cada COLUNA da tabela.

• CHAVE PRIMÁRIA : Impede a duplicação de registros na tabela e também facilita a busca de um

registro. Existem dois tipos de chaves primárias, a saber:

o Chave Primária Simples : Somente um campo da tabela é usado para chave primária;

o Chave Primária Composta : Dois ou mais campos da tabela compõe a chave primária;

• CHAVE ESTRANGEIRA : Um ou mais campos utilizados em uma tabela filho para receber dados de

uma tabela pai. A QUANTIDADE DE CAMPOS que irá compor a chave estrangeira é definida pela

quantidade de campos definidos como chave primária na tabela pai. Portanto, se a tabela pai possui

uma chave primária composta por 3 campos, a chave estrangeira, na tabela filho, terá obrigatoriamente

3 campos do mesmo tipo e tamanho que os definidos na tabela pai. Estudaremos este conceito na

prática, mais adiante, não se preocupe.

A figura abaixo ilustra alguns conceitos citados acima:

Figura 137

Page 4: COLÉGIO TÉCNICO “ANTÔNIO TEIXEIRA FERNANDES” CTI - … · Nesta apostila iremos manter (cadastrar / alterar / excluir / consultar) registros num banco de dados utilizando os

Curso de Informática – Cti / UniVap

Vb.net 2008 – Professor Alberson Wander Sá dos Santos P

ágin

a

33 – SISTEMAS GERENCIADORES DE BANCOS DE DADOS

Sistemas Gerenciadores de Bancos de Dados são software´s capazes de manter a integridade dos

dados armazenados num banco de dados.

Os bancos de dados mais utilizados pelos analistas de sistemas e programadores são:

• ACCESS

• SQL-SERVER

• MYSQL (gratuíto)

• POSTGRE (gratuíto)

• PARADOX

• INTERBASE

• FIREBIRD (gratuíto)

• ORACLE (mais caro do mercado)

• Entre outros

É importante saber que todos os bancos de dados utilizam uma linguagem para manipulação dos

registros armazenados. Esta linguagem é a SQL, ou Transact-SQL (STRUCTURED QUERY LANGUAGE ).

As linguagens de programações atuais, entre elas o Visual Basic .NET, permitem que os

programadores cadastrem, alterem, excluam e consultem registros, utilizando comandos da SQL.

Não confunda um arquivo de banco de dados com um programa desenvolvido numa linguagem

qualquer. Deste ponto para frente da matéria trabalharemos com arquivos de banco de dados e os programas

desenvolvidos para gravar, excluir, consultar e alterar os registros gravados no banco.

Com o vb.net, podemos criar o arquivo de banco de dados, tabelas e seus campos, com estrutura de

arquivos do SQL-SERVER. Este procedimento irá gerar um arquivo para armazenar os registros gerados pelo

seu programa.

34 – ADO.NET

O ADO.NET é um dos meios de acesso a registros de um banco de dados.

Nesta apostila iremos manter (cadastrar / alterar / excluir / consultar) registros num banco de dados

utilizando os recursos de acesso a dados do ADO.NET via código. Todos estes recursos estão presentes no

Namespace System.Data do ADO.NET.

Utilizaremos a estrutura do banco de dados SQL-SERVER, para cadastro de registros em tabelas que

serão criadas.

Page 5: COLÉGIO TÉCNICO “ANTÔNIO TEIXEIRA FERNANDES” CTI - … · Nesta apostila iremos manter (cadastrar / alterar / excluir / consultar) registros num banco de dados utilizando os

Curso de Informática – Cti / UniVap

Vb.net 2008 – Professor Alberson Wander Sá dos Santos P

ágin

a

Mais adiante conheceremos a fundo os componentes do ADO.NET. Porém, para título de

conhecimento incial saibamos que o ADO.NET é composto basicamente pelos seguintes componentes:

• DataSet

• Provedor .NET que é um conjunto de componentes que inclui os objetos: o Connection,

o Command,

o DataReader,

o e DataAdapter.

O ADO.NET atual pode acessar dados de três maneiras:

• OLE DB,

• SQL

• e ODBC (implementado mais recentemente).

Cada objeto possui uma versão para cada uma das maneiras mencionadas acima; assim temos o

objeto OleDataAdapter e SqlDataAdapter

Todos os recursos ADO.NET são oferecidos através dos Namespaces (espaços de nomes) da

biblioteca de nomes da classe .NET.

• System.Data - (Dados do sistema) - contém as classes fundamentais para gerenciar dados

como DataSet e DataRelation .

• System.Data.Common - (Dados comuns de Sistema) - Possui classes bases que são herdadas

por outras classes.

• System.Data.OleDb - Possui classes usadas para realizar conexão com o provedor OLE DB.

• System.Data.SqlClient - Possui classes para conexão com um banco de dados SQL Server via

interface TDS (Tabular Data Stream)

• System.Data.SqlTypes - (Dados de sistema Tipos SQL) - inclui tipos adicionais de dados que

não são fornecidos pelo .NET.

34.1 – Criando um banco de dados SQL-SERVER

Para fins de aprendizado, vamos contruir um projeto para manipular registros de clientes. Para isso,

vamos definir os campos que deveremos ter na tabela CLIENTES. Veja abaixo:

CAMPO TIPO DE DADO TAMANHO CHAVE PRIMÁRIA

CODCLI INTEIRO #

NOMECLI CHAR 40

SALARIOCLI REAL

SEXOCLI CHAR 1

NASCIMENTOCLI DATETIME

Page 6: COLÉGIO TÉCNICO “ANTÔNIO TEIXEIRA FERNANDES” CTI - … · Nesta apostila iremos manter (cadastrar / alterar / excluir / consultar) registros num banco de dados utilizando os

Curso de Informática – Cti / UniVap

Vb.net 2008 – Professor Alberson Wander Sá dos Santos P

ágin

a

Vamos seguir os passos abaixo para criação de um banco de dados com estrutura do SQL-SERVER e

a tabela anterior, assim dando início aos estudos sobre acessos e criação a banco de dados.

a) Primeiramente abra o VB.net;

b) Em seguida, clique com o botão direito do mouse sobre o nome do projeto na janela “Solution

Explorer” e siga os passos ilustrados na figura abaixo:

Figura 138

OU ENTÃO, entre no menu “Project”, escolha a opção “New Item”.

Logo em seguida surgirá a seguinte janela:

Figura 139

Page 7: COLÉGIO TÉCNICO “ANTÔNIO TEIXEIRA FERNANDES” CTI - … · Nesta apostila iremos manter (cadastrar / alterar / excluir / consultar) registros num banco de dados utilizando os

Curso de Informática – Cti / UniVap

Vb.net 2008 – Professor Alberson Wander Sá dos Santos P

ágin

a

c) Na janela anterior, selecione o item “Service-based Database” e digite no campo “NAME” o nome

do banco de dados que será criado. Veja abaixo um exemplo, aqui estamos criando o banco

LOJA.MDF:

Figura 140

d) Dando seguimento, clique no botão “Add”, visto na figura acima. Sugirá a seguinte tela. Oobserve

os pontos destacados pela linha vermelha:

Figura 141

e) Clique no botão “Finish ”, na janela acima.

Page 8: COLÉGIO TÉCNICO “ANTÔNIO TEIXEIRA FERNANDES” CTI - … · Nesta apostila iremos manter (cadastrar / alterar / excluir / consultar) registros num banco de dados utilizando os

Curso de Informática – Cti / UniVap

Vb.net 2008 – Professor Alberson Wander Sá dos Santos P

ágin

a

f) Se tudo deu certo, conforme descrito nos passos anteriores, após clicar no botão “Finish”,

aparecerá na janela solution explorer, os seguintes itens:

Figura 142

g) Agora basta clicar com o botão direito do mouse sobre o icone “Loja.mdf”, conforme exemplo

abaixo. Quando surgir o submenu selecione a opção “Open”. Diante desses passos surgirá a

aparecerá a janela “Server Explorer”. Veja abaixo:

Figura 143

h) Caso a janela “Server Explorer” não apareça, basta entrar no menu “View” e clicar na opção

“Solution Explorer”, conforme a próxima ilustração:

Figura 144

Page 9: COLÉGIO TÉCNICO “ANTÔNIO TEIXEIRA FERNANDES” CTI - … · Nesta apostila iremos manter (cadastrar / alterar / excluir / consultar) registros num banco de dados utilizando os

Curso de Informática – Cti / UniVap

Vb.net 2008 – Professor Alberson Wander Sá dos Santos P

ágin

a

34.2 – Criando tabelas no banco de dados SQL-SERVER

Estando com a janela “Solution Explorer” aberta no seu projeto, vamos agora criar a tabela

“CLIENTES” no banco de dados “Loja.mdf”. Para isso, seguiremos os seguintes passos:

a) Primeiramente clique com o botão direito do mouse sobre o objeto “Tables” do banco de dados

“Loja.mdf”, localizado na janela “Solution Explorer”. No submenu que surgir, clique na opção “Add

New Table”, conforme figura abaixo:

Figura 145

b) Deverá surgir a seguinte área de criação/edição de tabelas na tela, destacada em vermelho abaixo:

Figura 146

Page 10: COLÉGIO TÉCNICO “ANTÔNIO TEIXEIRA FERNANDES” CTI - … · Nesta apostila iremos manter (cadastrar / alterar / excluir / consultar) registros num banco de dados utilizando os

Curso de Informática – Cti / UniVap

Vb.net 2008 – Professor Alberson Wander Sá dos Santos P

ágin

a

A área anterior é destinada a criação/edição da estrutura da tabela. Preencha-a com os seguintes

dados, para criação da tabela “CLIENTES” (de acordo com a estrutura definida anteriormente, no item 34.1

desta apostila):

Figura 147

OBSERVAÇÕES SOBRE O PREENCHIMENTO ACIMA:

• Na coluna “Column Name” informe o nome dos campos da tabela “clientes”;

• Na coluna “Data Type”, informe o tipo de dado de cada campo;

• Na coluna “Allow Nulls”, informe se o campo permitirá cadastrar os registros sem a informação do referido

campo. Se caixa de seleção estiver SELECIONADA, está indicando que o dado não será obrigatório, ou

seja, permitirá vazio no momento do cadastro de um registro.

• Para criar a CHAVE PRIMÁRIA, basta selecionar o(s) campo(s) que irá(ão) compor a chave, e em

seguida, clicar no botão . Este procedimento fará aparecer o ícone de uma chave, ao lado dos campos

definidos como chave primária, na área de criação da tabela.

c) Depois de preenchida a área de criação de estrutura da tabela, podemos fechá-la. Porém, ao

clicarmos no botão fechar, OU NO BOTÃO (“Save All”), surgirá a seguinte janela solicitando-

nos a gravação da estrutura criada. Veja a próxima figura:

Page 11: COLÉGIO TÉCNICO “ANTÔNIO TEIXEIRA FERNANDES” CTI - … · Nesta apostila iremos manter (cadastrar / alterar / excluir / consultar) registros num banco de dados utilizando os

Curso de Informática – Cti / UniVap

Vb.net 2008 – Professor Alberson Wander Sá dos Santos P

ágin

a

Figura 148

d) Clique no botão “YES” para informar um nome para a tabela que está sendo criada. Com isso,

deverá aparecer a seguinte janela, solicitando a troca do nome proposto na figura anterior “Table1”.

Veja a figura abaixo:

Figura 149

e) Digite então o nome da tabela, no nosso caso “CLIENTES” e pressione o botão “OK”. Veja exemplo

a seguir:

Figura 150

Page 12: COLÉGIO TÉCNICO “ANTÔNIO TEIXEIRA FERNANDES” CTI - … · Nesta apostila iremos manter (cadastrar / alterar / excluir / consultar) registros num banco de dados utilizando os

Curso de Informática – Cti / UniVap

Vb.net 2008 – Professor Alberson Wander Sá dos Santos P

ágin

a

Após seguir os passos anteriores, na janela “Solution Explorer”, deverá aparecer o nome da tabela

criada, conforme mostra a figura abaixo:

Figura 151

Desta forma já temos o banco de dados criado e também uma primeira tabela para manter os dados de

CLIENTES. Os passos deste item da apostila devem ser seguidos sempre que uma nova tabela se tornar

necessária no banco de dados.

Já podemos então criar um formulário no vb.net, para se comunicar com o banco de dados e tabela(s)

criada(s). Veremos isso no próximo item desta apostila.

34.3 – PROJETO CLIENTES

Devemos agora criar a tela de programação para se comunicar com o banco de dados e tabela,

criados até então.

Todo o acesso ao banco de dados e tabelas serão feitos por meio de linhas de programação. Vale

ressaltar que existem objetos que fazem esta conexão, minimizando com isso a escrita de linhas de programa.

Porém, como o objetivo deste curso é programação, então devemos deixar de lado.

Page 13: COLÉGIO TÉCNICO “ANTÔNIO TEIXEIRA FERNANDES” CTI - … · Nesta apostila iremos manter (cadastrar / alterar / excluir / consultar) registros num banco de dados utilizando os

Curso de Informática – Cti / UniVap

Vb.net 2008 – Professor Alberson Wander Sá dos Santos P

ágin

a

Construa o seguinte formulário:

Figura 152

OBSERVAÇÃO IMPORTANTE:

DESENHE OS CAMPOS DENTRO DOS PAINEIS DO FORMULÁRIO ACIMA

Page 14: COLÉGIO TÉCNICO “ANTÔNIO TEIXEIRA FERNANDES” CTI - … · Nesta apostila iremos manter (cadastrar / alterar / excluir / consultar) registros num banco de dados utilizando os

Curso de Informática – Cti / UniVap

Vb.net 2008 – Professor Alberson Wander Sá dos Santos P

ágin

a

Em seguida, vamos alterar as seguintes propriedades dos objetos desenhados no formulário acima:

OBJETO NAME TEXT LIST MASK Enabled Visible Maxlenght

lblcodcli “Código do

Cliente”

Txtcodcli “” 10

Lblnomecli “Nome Cliente”

Txtnomecli “” 40

Lblsalariocli “Salário do

Cliente”

Txtsalariocli “” 10

Lblsexocli “Sexo do

Cliente”

Cbosexocli “” Masculin

o

Feminino

Lblnascimentocli “Data de

Nascimento”

Msknascimentocli “” __/__/____

Cmdcadastrar “Cadastrar”

Cmdalterar “Alterar”

Cmdexcluir “Excluir”

Cmdconsultar “Consultar”

Cmdconfirmar “Confirmar” False

Cmdcancelar “Cancelar” False

Cmdok “OK” False

pnlchave “” True

Pnlcampos “” False

Form1 “Clientes”

IMPORTANTE:

PARA O PROJETO FUNCIONAR CORRETAMENTE, ALTERE AS PROPRIEDADES ACIMA DE ACORDO

COM OS VALORES INFORMADOS

Page 15: COLÉGIO TÉCNICO “ANTÔNIO TEIXEIRA FERNANDES” CTI - … · Nesta apostila iremos manter (cadastrar / alterar / excluir / consultar) registros num banco de dados utilizando os

Curso de Informática – Cti / UniVap

Vb.net 2008 – Professor Alberson Wander Sá dos Santos P

ágin

a

Após criado o formulário e o banco de dados, conforme passos anteriores, seu projeto no vb.net deverá

ter a seguinte aparência:

Figura 153

PERCEBA NO PROJETO ACIMA:

• A janela “Server Explorer” exibe o banco de dados e a tabela clientes. Caso a tabela não esteja

visível, basta clicar no sinal “+” ao lado do objeto “Tables” nesta janela.

• Na janela “Solution Explorer”, está relacionado também o arquivo “LOJA.MDF”,

• A tela da aplicação será programada.

Agora vamos programar o projeto acima. Observe que cada linha de comando será explicada,

conforme as aulas dadas.

Page 16: COLÉGIO TÉCNICO “ANTÔNIO TEIXEIRA FERNANDES” CTI - … · Nesta apostila iremos manter (cadastrar / alterar / excluir / consultar) registros num banco de dados utilizando os

Curso de Informática – Cti / UniVap

Vb.net 2008 – Professor Alberson Wander Sá dos Santos P

ágin

a

Primeiramente, antes de qualquer programação, vamos importar a classe do OBJETO ADO.NET que

nos permitirá trabalhar com o banco de dados SQL-SERVER, construído para o projeto até então criado. Esta

importação deve ser feita na área de declaração de variáveis GENERAL /DECLARATIONS do formulário. Veja

figura abaixo:

Figura 154

OBSERVAÇÕES IMPORTANTES:

• A IMPORTAÇÃO DA CLASSE SYSTEM.DATA.SQLCLIENT deve ser feita antes da definição da

classe FORM1 , conforme mostra o exemplo acima.

• Perceba que a variável botao , também foi criada, para sabermos futuramente qual operação está

sendo CONFIRMADA pelo usuário. Veremos sua utilidade mais a frente.

Inclua um módulo no seu projeto, para criamos uma variável que servirá para guardar uma String de

conexão para o banco de dados. Crie a seguinte variável no MODULE.VB:

Figura 156

No envento FORM_LOAD, devemos estipular a string de conexão para o banco de dados, que será

usada para acessá-lo.

Para facilitar, basta utilizar a mesma string usada pelo banco de dados LOJA.MDF. Ao clicar no nome

do banco de dados (LOJA.MDF), na janela “Server Explorer”, será mostrada na janela de propriedades de

conexão para este banco. Copie a string de conexão criada automaticamente na propriedade ConnectionString,

circulada na figura a seguir:

Page 17: COLÉGIO TÉCNICO “ANTÔNIO TEIXEIRA FERNANDES” CTI - … · Nesta apostila iremos manter (cadastrar / alterar / excluir / consultar) registros num banco de dados utilizando os

Curso de Informática – Cti / UniVap

Vb.net 2008 – Professor Alberson Wander Sá dos Santos P

ágin

a

Figura 156

Vamos copiar o conteúdo da propriedade ConnectionString, selecionada acima, para ser atribuída a

variável “caminhoconexao”, criada no módulo. Esta atribuição deverá ser feita no evento FOM_LOAD do

formulário. Veja abaixo:

Private Sub Form1_Load( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'estipulando o caminho para conexão do banco de dad os caminhoconexao = "Data Source=.\SQLEXPRESS;AttachDbFilename=C:\VBxSQLSERVE R\projeto3bi\projeto3bi\LOJA.mdf;Integrated Security=True;User Instance=True" End Sub

Agora, vamos programar os botões Cadastrar / Alterar / Excluir / Consultar, respecitvamente:

Private Sub cmdcadastrar_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdcadastrar.Click 'verificando se o código do cliente é válido If Not IsNumeric(txtcodcli.Text) Then MsgBox( "Digite corretamente o código do cliente." , MsgBoxStyle.Information, "Aviso:" ) txtcodcli.Focus() Exit Sub End If 'criando objeto conexao para estabelecer a conexão com o banco de dados, diante do caminho estabelecido em caminho conexao Dim conexao As New SqlConnection(caminhoconexao) 'criando o objeto comando para executar a busca do registro no banco de dados que está conectado Dim comando As New SqlCommand( "select count(*) from clientes where codcli = " & txtcodcli.Text, conexao) 'Com a linha abaixo estamos informando ao objeto co mando que tipo de 'instrução será utilizada para acessar o registro comando.CommandType = CommandType.Text 'vamos nos preparar para possíveis erros gerados qu ando executarmos os próximos comandos 'usando o comando try... catch Try

Page 18: COLÉGIO TÉCNICO “ANTÔNIO TEIXEIRA FERNANDES” CTI - … · Nesta apostila iremos manter (cadastrar / alterar / excluir / consultar) registros num banco de dados utilizando os

Curso de Informática – Cti / UniVap

Vb.net 2008 – Professor Alberson Wander Sá dos Santos P

ágin

a

'abrindo o banco de dados conexao.Open() 'executanto o comando sql para contar quantos regis tros possuem o código informado 'na caixa de texto txtcodcli comando.ExecuteNonQuery() 'se a quantidade de registro filtrados for maior ou igual a 1, significa que já existem 'registros gravados com o código digitado na caixa de texto txtcodcli If comando.ExecuteScalar >= 1 Then MsgBox( "Cliente já cadastrado" , MsgBoxStyle.Information, "Aviso:" ) txtcodcli.Focus() Else 'se o registro não existir pnlchave.Enabled = False pnlcampos.Enabled = True cmdcadastrar.Enabled = False cmdalterar.Enabled = False cmdexcluir.Enabled = False cmdconsultar.Enabled = False cmdconfirmar.Visible = True cmdcancelar.Visible = True 'Definindo o botão cadastrar como 1 botao = 1 txtnomecli.Focus() End If 'fechando a conexão conexao.Close() Catch ex As Exception MsgBox( "erro: " & Err.Number & "-" & Err.Description) End Try

Private Sub cmdalterar_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdalterar.Click 'verificando se o código do cliente é válido If Not IsNumeric(txtcodcli.Text) Then MsgBox( "Digite corretamente o código do cliente." , MsgBoxStyle.Information, "Aviso:" ) txtcodcli.Focus() Exit Sub End If 'criando objeto conexao para estabelecer a conexão com o banco de dados, diante do caminho estabelecido em caminhoconexao Dim conexao As New SqlConnection(caminhoconexao) 'criando o objeto comando para executar a busca do registro no banco de dados que está conectado Dim comando As New SqlCommand( "select count(*) from clientes where codcli = " & txtcodcli.Text, conexao) 'Com a linha abaixo estamos informando ao objeto co mando que tipo de 'instrução será utilizada para acessar o registro comando.CommandType = CommandType.Text 'vamos nos preparar para possíveis erros gerados qu ando executarmos os próximos comandos 'usando o comando try... catch Try

Page 19: COLÉGIO TÉCNICO “ANTÔNIO TEIXEIRA FERNANDES” CTI - … · Nesta apostila iremos manter (cadastrar / alterar / excluir / consultar) registros num banco de dados utilizando os

Curso de Informática – Cti / UniVap

Vb.net 2008 – Professor Alberson Wander Sá dos Santos P

ágin

a

'abrindo o banco de dados conexao.Open() 'executanto o comando sql para contar quantos regis tros possuem o código informado 'na caixa de texto txtcodcli comando.ExecuteNonQuery() 'se a quantidade de registro filtrados for maior ou igual a 1, significa que já existem 'registros gravados com o código digitado na caixa de texto txtcodcli If comando.ExecuteScalar >= 1 Then 'criando uma nova instrução sql para filtrar os dad os do registro existente comando.CommandText = "select * from clientes where codcli = " & txtcodcli.Text 'A linha abaixo cria a tabela temporária chamada re gistro. 'Ela será criada quando o método ExecuteReader (Exe cutar leitura)do objeto comando for 'executado Dim registro As SqlDataReader = comando.ExecuteReader() 'vamos nos preparar para possíveis erros gerados qu ando executarmos os próximos 'comandos usando o comando try... c atch Try 'apontando para o registro lido, visto que só exist e um registro com 'o código informado registro.Read() 'movendo o registro lido para a tela, ou seja, exib indo o registro na tela txtnomecli.Text = registro.Item ( "nomecli" ) txtsalariocli.Text = registro.I tem( "salariocli" ) If registro.Item( "sexocli" ) = "M" Then cbosexocli.Text = "Masculino" Else If registro.Item( "sexocli" ) = "F" Then cbosexocli.Text = "Feminino" End If End If msknascimentocli.Text = registr o.Item( "nascimento" ) cmdcadastrar.Enabled = False cmdalterar.Enabled = False cmdexcluir.Enabled = False cmdconsultar.Enabled = False pnlchave.Enabled = False pnlcampos.Enabled = True botao = 2 cmdconfirmar.Visible = True cmdcancelar.Visible = True txtnomecli.Focus() Catch ex As Exception MsgBox( "Erro: " & Err.Number & "-" & Err.Description, MsgBoxStyle.Information, "Aviso:" ) End Try 'fechando a comando temporária que armazenava o reg istro do cliente registro.Close() Else MsgBox( "Cliente não cadastrado. Verifique o código do clie nte informado." , MsgBoxStyle.Information, "Aviso" ) txtcodcli.Focus() End If conexao.Close()

Page 20: COLÉGIO TÉCNICO “ANTÔNIO TEIXEIRA FERNANDES” CTI - … · Nesta apostila iremos manter (cadastrar / alterar / excluir / consultar) registros num banco de dados utilizando os

Curso de Informática – Cti / UniVap

Vb.net 2008 – Professor Alberson Wander Sá dos Santos P

ágin

a

Catch ex As Exception MsgBox( "erro: " & Err.Number & "-" & Err.Description) End Try End Sub

Private Sub cmdexcluir_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdexcluir.Click 'verificando se o código do cliente é válido If Not IsNumeric(txtcodcli.Text) Then MsgBox( "Digite corretamente o código do cliente." , MsgBoxStyle.Information, "Aviso:" ) txtcodcli.Focus() Exit Sub End If 'criando objeto conexao para estabelecer a conexão com o banco de dados, diante do caminho estabelecido em caminhoconexao Dim conexao As New SqlConnection(caminhoconexao) 'criando o objeto comando para executar a busca do registro no banco de dados que está conectado Dim comando As New SqlCommand( "select count(*) from clientes where codcli = " & txtcodcli.Text, conexao) 'Com a linha abaixo estamos informando ao objeto co mando que tipo de 'instrução será utilizada para acessar o registro comando.CommandType = CommandType.Text 'vamos nos preparar para possíveis erros gerados qu ando executarmos os próximos 'comandos usando o comando try... catch Try 'abrindo o banco de dados conexao.Open() 'executanto o comando sql para contar quantos regis tros possuem o código informado 'na caixa de texto txtcodcli comando.ExecuteNonQuery() 'se a quantidade de registro filtrados for maior ou igual a 1, significa que já existem 'registros gravados com o código digitado na caixa de texto txtcodcli If comando.ExecuteScalar >= 1 Then 'criando uma nova instrução sql para filtrar os dad os do registro existente comando.CommandText = "select * from clientes where codcli = " & txtcodcli.Text 'A linha abaixo cria a tabela temporária chamada re gistro. 'Ela será criada quando o método ExecuteReader (Exe cutar leitura)do objeto comando for executado Dim registro As SqlDataReader = comando.ExecuteReader() Try 'apontando para o registro lido, visto que só exist e um registro 'com o código informado. registro.Read() 'movendo o registro da comando temporária para a te la txtnomecli.Text = registro.Item ( "nomecli" ) txtsalariocli.Text = registro.I tem( "salariocli" ) If registro.Item( "sexocli" ) = "M" Then cbosexocli.Text = "Masculino" Else If registro.Item( "sexocli" ) = "F" Then cbosexocli.Text = "Feminino" End If End If

Page 21: COLÉGIO TÉCNICO “ANTÔNIO TEIXEIRA FERNANDES” CTI - … · Nesta apostila iremos manter (cadastrar / alterar / excluir / consultar) registros num banco de dados utilizando os

Curso de Informática – Cti / UniVap

Vb.net 2008 – Professor Alberson Wander Sá dos Santos P

ágin

a

msknascimentocli.Text = registr o.Item( "nascimento" ) 'alterando o estado dos botões e campos da tela cmdcadastrar.Enabled = False cmdalterar.Enabled = False cmdexcluir.Enabled = False cmdconsultar.Enabled = False pnlchave.Enabled = False pnlcampos.Enabled = False 'determinando que o botão Exclu ir é o 3 botao = 3 cmdconfirmar.Visible = True cmdcancelar.Visible = True Catch ex As Exception MsgBox( "Erro: " & Err.Number & "-" & Err.Description, MsgBoxStyle.Information, "Aviso:" ) End Try 'fechando a comando temporária que armazenava o reg istro do cliente registro.Close() Else MsgBox( "Cliente não cadastrado. Verifique o código do clie nte informado." , MsgBoxStyle.Information, "Aviso" ) txtcodcli.Focus() End If conexao.Close() Catch ex As Exception MsgBox( "erro: " & Err.Number & "-" & Err.Description) End Try End Sub

Private Sub cmdconsultar_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdconsultar.Click 'verificando se o código do cliente é válido If Not IsNumeric(txtcodcli.Text) Then MsgBox( "Digite corretamente o código do cliente." , MsgBoxStyle.Information, "Aviso:" ) txtcodcli.Focus() Exit Sub End If 'criando objeto conexao para estabelecer a conexão com o banco de dados, diante do caminho estabelecido em caminhoconexao Dim conexao As New SqlConnection(caminhoconexao) 'criando o objeto comando para executar a busca do registro no banco de dados que está conectado Dim comando As New SqlCommand( "select count(*) from clientes where codcli = " & txtcodcli.Text, conexao) 'Com a linha abaixo estamos informando ao objeto co mando que tipo de 'instrução será utilizada para acessar o registro comando.CommandType = CommandType.Text 'vamos nos preparar para possíveis erros gerados qu ando executarmos os próximos 'comandos usando o comando try... catch Try 'abrindo o banco de dados conexao.Open()

Page 22: COLÉGIO TÉCNICO “ANTÔNIO TEIXEIRA FERNANDES” CTI - … · Nesta apostila iremos manter (cadastrar / alterar / excluir / consultar) registros num banco de dados utilizando os

Curso de Informática – Cti / UniVap

Vb.net 2008 – Professor Alberson Wander Sá dos Santos P

ágin

a

'executanto o comando sql para contar quantos regis tros possuem o código informado 'na caixa de texto txtcodcli comando.ExecuteNonQuery() 'se a quantidade de registro filtrados for maior ou igual a 1, significa que já existem 'registros gravados com o código digitado na caixa de texto txtcodcli If comando.ExecuteScalar >= 1 Then 'criando uma nova instrução sql para filtrar os dad os do registro existente comando.CommandText = "select * from clientes where codcli = " & txtcodcli.Text 'A linha abaixo cria a tabela temporária chamada re gistro. 'Ela será criada quando o método ExecuteReader (Exe cutar leitura)do objeto comando for executado Dim registro As SqlDataReader = comando.ExecuteReader() 'vamos nos preparar para possíveis erros gerados qu ando executarmos os próximos 'comandos usando o comando try... c atch Try 'vai para o registro lido, visto que na tabela só e xiste um registro 'com o código informado registro.Read() 'movendo o registro da comando temporária para a te la txtnomecli.Text = registro.Item ( "nomecli" ) txtsalariocli.Text = registro.I tem( "salariocli" ) If registro.Item( "sexocli" ) = "M" Then cbosexocli.Text = "Masculino" Else If registro.Item( "sexocli" ) = "F" Then cbosexocli.Text = "Feminino" End If End If msknascimentocli.Text = registr o.Item( "nascimento" ) 'alterando o estado dos botões e campos da tela cmdcadastrar.Enabled = False cmdalterar.Enabled = False cmdexcluir.Enabled = False cmdconsultar.Enabled = False pnlchave.Enabled = False pnlcampos.Enabled = False cmdok.Visible = True Catch ex As Exception MsgBox( "Erro: " & Err.Number & "-" & Err.Description, MsgBoxStyle.Information, "Aviso:" ) End Try 'fechando a comando temporária que armazenava o reg istro do cliente registro.Close() Else MsgBox( "Cliente não cadastrado. Verifique o código do clie nte informado." , MsgBoxStyle.Information, "Aviso" ) txtcodcli.Focus() End If conexao.Close() Catch ex As Exception MsgBox( "erro: " & Err.Number & "-" & Err.Description) End Try End Sub

Page 23: COLÉGIO TÉCNICO “ANTÔNIO TEIXEIRA FERNANDES” CTI - … · Nesta apostila iremos manter (cadastrar / alterar / excluir / consultar) registros num banco de dados utilizando os

Curso de Informática – Cti / UniVap

Vb.net 2008 – Professor Alberson Wander Sá dos Santos P

ágin

a

Agora, vamos programar, respectivamente, os botões CONFIRMAR, CANCELAR e OK:

Private Sub cmdconfirmar_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdconfirmar.Click If txtnomecli.Text.Trim = "" Then MsgBox( "Informe o nome do cliente." , MsgBoxStyle.Information, "Aviso:" ) txtnomecli.Focus() Exit Sub End If If Not IsNumeric(txtsalariocli.Text) Then MsgBox( "Informe corretamente o salário do cliente." , MsgBoxStyle.Exclamation, "Aviso:" ) txtsalariocli.Focus() Exit Sub End If If cbosexocli.Text.Trim = "" Then MsgBox( "Selecione o sexo do cliente." , MsgBoxStyle.Exclamation, "Aviso" ) cbosexocli.Focus() Exit Sub End If If Not IsDate(msknascimentocli.Text) Then MsgBox( "Informe corretamente a data de nascimento." , MsgBoxStyle.Information, "Aviso:" ) msknascimentocli.Focus() Exit Sub End If 'criando conexão com o banco, diante do caminho ind icado na variável caminhoconexao Dim conexao As New SqlConnection(caminhoconexao) Dim comando As SqlCommand = conexao.CreateCommand Dim sexo As String sexo = cbosexocli.Text.ToUpper.First Select Case botao Case 1 'gravar registro comando.CommandText = ( "insert into clientes(codcli, nomecli, salariocli, sexocli, nascimento) values(" & txtcodcli.Text & ",'" & txtnomecli.Text & "'," & txtsalariocli.Text & ",'" & sexo & "',CONVERT(datetime,'" & msknascimentocli.Text & "',103))" ) Case 2 ' alterar registro comando.CommandText = ( "update clientes set nomecli = '" & txtnomecli.Text & "', salariocli= " & txtsalariocli.Text & ", sexocli= '" & sexo & "', nascimento= CONVERT(datetime,'" & msknascimentocli.Text & "',103) where codcli = " & txtcodcli.Text) Case 3 'excluir registro comando.CommandText = ( "delete from clientes where codcli = " & txtcodcli.Text) End Select Try conexao.Open() comando.ExecuteNonQuery() conexao.Close() Catch ex As Exception MsgBox( "Erro: " & Err.Number & "-" & Err.Description, MsgBoxStyle.Critical, "Aviso:" ) End Try cmdcancelar_Click(sender, e) End Sub

Page 24: COLÉGIO TÉCNICO “ANTÔNIO TEIXEIRA FERNANDES” CTI - … · Nesta apostila iremos manter (cadastrar / alterar / excluir / consultar) registros num banco de dados utilizando os

Curso de Informática – Cti / UniVap

Vb.net 2008 – Professor Alberson Wander Sá dos Santos P

ágin

a

Private Sub cmdcancelar_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdcancelar.Click pnlchave.Enabled = True pnlcampos.Enabled = False txtnomecli.Text = "" cbosexocli.Text = "" txtsalariocli.Text = "" msknascimentocli.Text = "" cmdcadastrar.Enabled = True cmdalterar.Enabled = True cmdexcluir.Enabled = True cmdconsultar.Enabled = True cmdconfirmar.Visible = False cmdcancelar.Visible = False txtcodcli.Focus() End Sub

Private Sub cmdok_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdok.Click cmdcancelar_Click(sender, e) cmdok.Visible = False End Sub

34.4 – Carregando dados de tabela em Caixas de List agens

Em alguns momentos precisaremos carregar alguns dados de um registro em uma caixa de combo, ou

caixa de listagem, afim de exibí-los para o usuário, ou até mesmo como formas de pesquisas avançadas.

Para exemplificar, vamos inserir uma caixa de listagem e um label a mais, no formulário de clientes,

criado anteriormente. Para a caixa de listagem e o label inseridos, devemos alterar as seguintes propriedades:

OBJETO PROPRIEDADE NAME PROPRIEDADE LIST PROPRIEDADE SORTED PROPRIEDADE TEXT

Lblclien tescadastrados “Clientes Já

Cadastrados”

Lstclientes “” TRUE

Esta caixa de listagem exibirá os nomes de todos os clientes que estão cadastrados no sistema.

A medida que novos clientes forem cadastrados, ou e xcluídos, ela deverá ser atualizada.

Page 25: COLÉGIO TÉCNICO “ANTÔNIO TEIXEIRA FERNANDES” CTI - … · Nesta apostila iremos manter (cadastrar / alterar / excluir / consultar) registros num banco de dados utilizando os

Curso de Informática – Cti / UniVap

Vb.net 2008 – Professor Alberson Wander Sá dos Santos P

ágin

a

Veja a nova aparência do seu formulário de cadastro de clientes, depois de desenhada a caixa de

listagem:

Figura 157

O PROCEDIMENTO ABAIXO, mostrará os nomes de clientes cadastrados na tabela “clientes” do

banco de dados “LOJA.MDF”.

Private Sub atualizalistaclientes() 'criando objeto conexao para estabelecer a conexão com o banco de dados, diante do caminho estabelecido em caminhoconexao Dim conexao As New SqlConnection(caminhoconexao) 'criando o objeto comando para executar a busca do registro no banco de dados que está conectado Dim comando As New SqlCommand( "select count(*) from clientes " , conexao) 'Com a linha abaixo estamos informando ao objeto co mando que tipo de 'instrução será utilizada para acessar o registro comando.CommandType = CommandType.Text lstclientes.Items.Clear() Try 'abrindo o banco de dados conexao.Open() 'executanto o comando sql para contar quantos regis tros possuem o código informado 'na caixa de texto txtcodcli comando.ExecuteNonQuery()

Page 26: COLÉGIO TÉCNICO “ANTÔNIO TEIXEIRA FERNANDES” CTI - … · Nesta apostila iremos manter (cadastrar / alterar / excluir / consultar) registros num banco de dados utilizando os

Curso de Informática – Cti / UniVap

Vb.net 2008 – Professor Alberson Wander Sá dos Santos P

ágin

a

'se a quantidade de registro filtrados for maior ou igual a 1, significa que já existem 'registros gravados com o código digitado na caixa de texto txtcodcli If comando.ExecuteScalar >= 1 Then 'criando uma nova instrução sql para filtrar os dad os do registro existente comando.CommandText = "select * from clientes " 'A linha abaixo cria a tabela temporária chamada re gistro. 'Ela será criada quando o método ExecuteReader (Exe cutar leitura)do objeto comando for executado Dim registro As SqlDataReader = comando.ExecuteReader() Try 'vai para o registro lido, visto que na tabela só e xiste um registro 'com o código informado While registro.Read() 'movendo o registro da comando temporária para a te la lstclientes.Items.Add(regis tro.Item( "nomecli" )) End While Catch ex As Exception MsgBox( "erro:" & ex.ToString) End Try End If Catch ex As Exception MsgBox( "erro:" & ex.ToString) End Try conexao.Close() End Sub

PARA O PROCEDIMENTO ACIMA FUNCIONAR LEMBRE-SE:

• Copie o procedimento acima para dentro da classe Form1 do projeto criado.

• DESENHE NO FORMULÁRIO DO PROJETO “LOJA” UMA CAIXA DE LISTAGEM e a nomeie como

“lstclientes”.

• Em seguida, basta escrevermos o nome do procedimento “atualizalistaclientes”, no ponto desejado do

programa. Como proposta, chame-o no final da programação do botão “CMDCONFIRMAR”, e

também, no evento FORM1_LOAD.

Page 27: COLÉGIO TÉCNICO “ANTÔNIO TEIXEIRA FERNANDES” CTI - … · Nesta apostila iremos manter (cadastrar / alterar / excluir / consultar) registros num banco de dados utilizando os

Curso de Informática – Cti / UniVap

Vb.net 2008 – Professor Alberson Wander Sá dos Santos P

ágin

a

34.5 – Objetos de acesso a bancos de dados ADO.NET

Vamos falar um pouco sobre os objetos de acesso a banco de dados, usados no projeto programado

anteriormente (CLIENTES).

Todos os exemplos de uso dos objetos foram dados no projeto que cadastra CLIENTES, abordado

nesta apostila.

34.5.1 – Objetos Connection

Estes objetos são usados para estabelecer a conexão com um banco de dados. O único truque é que

temos que usar corretamente uma string de conexão.

Os métodos OPEN() E CLOSE() são usados por este objeto para abrir e fechar a conexão,

respectivamente.

34.5.2 – Objetos Command

Estes objetos são usados para declarações de instruções SQL. Usaremos as seguintes sintaxes SQL

para manipulação de registros em tabelas:

SINTAXE: INSERT – CADASTRO DE REGISTROS

Insert into <tabela>(campo1, campo2,...,campon) values (dado1, dado2,...,dadon)

SINTAXE: UPDADE – ALTERAÇÃO DE REGISTROS

Update <tabela> set <campo1>=<novovalor>,<campo2>=<novovalor>,...,<campo3>=<novovalor>

where <condição(ões)>

SINTAXE: DELETE – EXCLUSÃO DE REGISTROS

Delete from <tabela> where <condição(ões)>

SINTAXE: SELECT – CONSULTA DE REGISTROS

Select <campo1>, <campo2>, ..,<campon> from <tabela> where <condição(ões)>

Os métodos usados para executar os comandos SQL são os seguintes :

• ExecuteReader - executa declarações SQL que retornam linhas de dados, tais como SELECT

• ExecuteNonQuery - executa declarações SQL que não retornam dados , tais como: INSERT,

UPDATE , DELETE e SET

• ExecuteScalar - retorna um valor único como resultado de uma função agregada : SUM , AVG,

COUNT , MAX E MIN.

Page 28: COLÉGIO TÉCNICO “ANTÔNIO TEIXEIRA FERNANDES” CTI - … · Nesta apostila iremos manter (cadastrar / alterar / excluir / consultar) registros num banco de dados utilizando os

Curso de Informática – Cti / UniVap

Vb.net 2008 – Professor Alberson Wander Sá dos Santos P

ágin

a

34.5.3 – Objetos DataReader

O objeto DataReader é uma das maneiras mais fáceis para ler os dados retornados pelos objetos

Command . Eles permitem acessar e percorrer os registros no modo de somente leitura e somente para frente

- forward-only . Não oferecem acesso desconectado e não permitem alterar ou atualizar a fonte de dados

original sendo usado para obter rapidamente dados de apenas leitura. Apresenta poucos recursos mas seu

desempenho é muito melhor do que o oferecido pelos DataSet.

As propriedades e métodos mais usadas dos objetos DataReader são :

1. FieldCount - informa o número de colunas da linha de dados atual

2. IsClosed - Indica se o objeto DataReader esta fechado.

3. RecordsAffected - especifica o número de linhas alteradas , excluídas ou incluídas na execução de

uma declaração SQL

4. Item (n) - obtêm o valor da n-ésima coluna no seu formato nativo.

5. Close - Método que fecha o objeto

6. GetName - Método que retorna o nome da n-ésima coluna.

7. Read - método que permite ao DataReader avançar para o próximo registro

8. IsDbNull - método que informa se a n-ésima coluna possui um valor nulo.

Este objeto deve ser utilizado no seu programa quando deseja executar leitura de registros das

tabelas do banco de dados.

Vale ressaltar que existem dois tipos de DataReader:

• SqlDataReader (otimizado para banco de dados do SQL Server)

• OleDbDataReader (para provedores OLE DB – Outros bancos de dados)

Para criar o objeto DataReader é necessário usar o método ExecuteReader do nosso objeto command,

explicado anteriormente.

Após a execução da leitura dos registros desejados, será necessário nos movimentarmos entre eles,

afim de exibí-los na tela ou realizar algum processamento desejado. Para acessarmos os registros filtrados

devemos usar o método READ(), do objeto reader. Veja exemplos abaixo:

Dim reader as sqldatareader = cmd.ExecuteReader()

Do while reader.read()

‘trabalhamos com o registro corrente

Loop

Reader.close

Conexao.close

Page 29: COLÉGIO TÉCNICO “ANTÔNIO TEIXEIRA FERNANDES” CTI - … · Nesta apostila iremos manter (cadastrar / alterar / excluir / consultar) registros num banco de dados utilizando os

Curso de Informática – Cti / UniVap

Vb.net 2008 – Professor Alberson Wander Sá dos Santos P

ágin

a

OBSERVAÇÃO IMPORTANTE SOBRE O MÉTODO READ( ):

No vb.net, não usamos os métodos movenext (para posicionar num próximo registro) e nem os de testes de

final e início de arquivos. O método READ() já executa estas duas tarefas ao mesmo tempo.

35 – Caixas de Diálogos

Estes objetos são conhecidos no ambiente do windows por permitirem ao usuário definir locais para

gravações/abertura de arquivos, em meios de armazenamento de informações (HD/pen drives / cd/ etc.),

definição de cores, definição de fontes e definições de impressão de documentos.. Veja abaixo um exemplo de

caixa de diálogo “Salvar Como...”, usada no WORD:

Figura 158

Existem no vb.net, vários tipois de caixas de diálogos. Estudaremos agora como utilizar as seguintes

caixa de diálogos, disponíveis na guia DIALOGS do vb.net 2008:

Figura 159

Vale ressaltar que exite ainda a caixa de diálogo de IMPRESSÃO. Não a estudaremos, pois seu

principio de utilização é o mesmo que as citadas acima.

Page 30: COLÉGIO TÉCNICO “ANTÔNIO TEIXEIRA FERNANDES” CTI - … · Nesta apostila iremos manter (cadastrar / alterar / excluir / consultar) registros num banco de dados utilizando os

Curso de Informática – Cti / UniVap

Vb.net 2008 – Professor Alberson Wander Sá dos Santos P

ágin

a

CURIOSIDADE: Quando for necessário usar uma caixa de diálogo no seu projeto, perceberá que a

mesma não será inserida na área do formulário, pois seu principio de funcionamento é igual ao do objeto

TIMER, ou seja, devemos programar seu funcionamento para o usuário. Veja abaixo como aparecerá inserida

no formulário:

Figura 160

35.1 – Caixa de Diálogo ABRIR (OpenFileDialog)

Figura 161

Page 31: COLÉGIO TÉCNICO “ANTÔNIO TEIXEIRA FERNANDES” CTI - … · Nesta apostila iremos manter (cadastrar / alterar / excluir / consultar) registros num banco de dados utilizando os

Curso de Informática – Cti / UniVap

Vb.net 2008 – Professor Alberson Wander Sá dos Santos P

ágin

a

Esta caixa de diálogo permitirá ao usuário localizar um arquivo para sua devida abertura. Vale

ressaltar que deveremos escrever a programação para o arquivo selecionado ser aberto. A caixa de diálogo

servirá somente para tornar o processo mais agradável e no padrão conhecido por qualquer usuário do

windows.

Vamos conhecer as principais propriedades da caixa de diálogo “ABRIR”(OpenFileDialog) :

PROPRIEDADE PARA QUE SERVE

Name Dar nome ao objeto. Este nome será usado na programação.

AddExtension Controla se as extensões são ou não automaticamente adicionadas aos nomes de arquivos.

CheckFileExists Verifica se o arquivo especificado esiste, antes de retornar do diálogo.

CheckPathExists Verifica se o caminho especificado existe, antes de retornar do diálogo.

DefautExt A extensão padrão do nome dos arquivos que deverão aparecer na caixa de diálogo. Ao digitar o nome do arquivo, esta extensão será adicionada automaticamente ao seu final, caso não seja especificada.

FileName Caminho e nome do arquivo selecionado pelo usuário, quando o usuário clicar no botão “Abrir” (open) da caixa de diálogo

FileNames Armazena o nome de todos os arquivos selecionados na caixa de diálogo. OBS: só poderá ser utilizada quando a propriedade MULTISELECT estiver com valor “true”.

Filter Determina os tipos dos arquivos que poderão ser escolhidos pelo usuário.

FilterIndex Indica o índice do tipo de arquivo selecionado pelo usuário. LEMBRE-SE QUE O PRIMEIRO TIPO DE ARQUIVO POSSUI ÍNDICE 1.

InitialDirectory Determinar a pasta que deverá ser mostrada INICIALMENTE para o usuário quando a janela de diálogo aparecer.

MultiSelect Permite (true) ou não (False) que o usuário possa selecionar vários arquivos ao mesmo tempo.

Title Definir a string da barra de título da janela de diálogo

35.2 – Caixa de Diálogo SALVAR (SaveFileDialog)

Figura 162

Page 32: COLÉGIO TÉCNICO “ANTÔNIO TEIXEIRA FERNANDES” CTI - … · Nesta apostila iremos manter (cadastrar / alterar / excluir / consultar) registros num banco de dados utilizando os

Curso de Informática – Cti / UniVap

Vb.net 2008 – Professor Alberson Wander Sá dos Santos P

ágin

a

Esta caixa de diálogo permite ao usuário definir caminho e nome dos arquivos que deseja gravar. Esta

caixa é comum no ambiente do windows. Como exemplo, podemos citar a janela que o próprio Word abre,

quando você clica no ícone do diskete, para salvar o arquivo que está aberto naquele momento.

Basicamente todas as propriedades das caixas de diálogos que serão conhecidas são as mesmas.

Vamos conhecer as principais propriedades deste objeto:

PROPRIEDADE PARA QUE SERVE

Name Dar nome ao objeto. Este nome será usado na programação.

AddExtension Controla se as extensões são ou não automaticamente adicionadas aos nomes de arquivos.

CheckFileExists Verifica se o arquivo especificado esiste, antes de retornar do diálogo.

CheckPathExists Verifica se o caminho especificado existe, antes de retornar do diálogo.

DefautExt A extensão padrão do nome dos arquivos que deverão aparecer na caixa de diálogo. Ao digitar o nome do arquivo, esta extensão será adicionada automaticamente ao seu final, caso não seja especificada.

FileName Caminho e nome do arquivo selecionado pelo usuário, quando o usuário clicar no botão “Abrir” (open) da caixa de diálogo

Filter Determina os tipos dos arquivos que poderão ser escolhidos pelo usuário.

FilterIndex Indica o índice do tipo de arquivo selecionado pelo usuário. LEMBRE-SE QUE O PRIMEIRO TIPO DE ARQUIVO POSSUI ÍNDICE 1.

InitialDirectory Determinar a pasta que deverá ser mostrada INICIALMENTE para o usuário quando a janela de diálogo aparecer.

Title Definir a string da barra de título da janela de diálogo

35.3 – Caixa de Diálogo CORES (ColorDialog)

Figura 163

Usa-se esta caixa de diálogo num projeto, para permitir ao usuário escolher uma cor. Vale dizer que

quando o usuário clicar no botão “OK” , será retornado o nome da cor ou o código hexadecimal da mesma,

dependendo da cor selecionada.

Page 33: COLÉGIO TÉCNICO “ANTÔNIO TEIXEIRA FERNANDES” CTI - … · Nesta apostila iremos manter (cadastrar / alterar / excluir / consultar) registros num banco de dados utilizando os

Curso de Informática – Cti / UniVap

Vb.net 2008 – Professor Alberson Wander Sá dos Santos P

ágin

a

Entretanto, poderemos usar a propriedade COLOR, pois ela retornará as características da cor

selecionada, para utilizarmos no programa do projeto que está sendo desenvolvido.

Suas principais propriedades são:

PROPRIEDADE PARA QUE SERVE

Name Dar nome ao objeto. Este nome será usado na programação.

AllowFullOpen Ativa (True) ou não (False) o botão “Definir cores personalizadas>>” da caixa de diálogo

AnyColor Controlar se qualquer cor pode ser selecionada pelo usuário

Color Retornar as caracteristicas da cor selecionada pelo usuário, quando o botão “OK” for pressionado

Color.Name Retornar o nome da cor selecionada. Para algumas cores, retorna o código HEXADECIMAL da mesma.

35.4 – Caixa de Diálogo FONTE (FontDialog)

Figura 164

A janela de fonte, como o próprio nome já diz, permite ao usuário configurar as fontes que serão

utilizadas no seu projeto, definindo propriedades para outros objetos. Esta janela é normalmente utilizada

quando desejamos definir as fontes de uma caixa de texto, por exemplo.

Vejamos as propriedades mais utilizadas desta janela:

Page 34: COLÉGIO TÉCNICO “ANTÔNIO TEIXEIRA FERNANDES” CTI - … · Nesta apostila iremos manter (cadastrar / alterar / excluir / consultar) registros num banco de dados utilizando os

Curso de Informática – Cti / UniVap

Vb.net 2008 – Professor Alberson Wander Sá dos Santos P

ágin

a

PROPRIEDADE PARA QUE SERVE

Name Dar nome ao objeto. Este nome será usado na programação.

AllowSimulations Tornar disponível os vários estilos de fontes, além da opção “Normal”.

Color Definir a cor da fonte do texto

Font Retornar as caracteristicas da fonte selecionada pelo usuário

MaxSize Definirmos o valor máximo para as fontes selecionáveis (0 – desativa)

MinSize Definirmos o valor mínimo para as fontes selecionáveis (0 - desativa)

ShowApply Para permitir (True) ou não (false) que o botão “Aplicar” fique visível na caixa de diálogo

ShowColor Para permitir (true) ou não (False) a exibição das opções de cores da fonte na janela.

ShowEffects Para permitir (True) ou não (False) a exibição das opções Sublinhado / Sobrescrito / Cor de Fonte, na janela de diálogo

35.5 – Programa Caixas de Diálogo

Vamos desenvolver um programa para ilustrar o uso das caixas de diálogo ensinadas até o momento.

Para isso, vamos construir o seguinte formulário em um novo projeto:

Figura 165

Page 35: COLÉGIO TÉCNICO “ANTÔNIO TEIXEIRA FERNANDES” CTI - … · Nesta apostila iremos manter (cadastrar / alterar / excluir / consultar) registros num banco de dados utilizando os

Curso de Informática – Cti / UniVap

Vb.net 2008 – Professor Alberson Wander Sá dos Santos P

ágin

a

Em seguida vamos alterar as seguintes propriedades para os objetos desenhados no formulário:

OBJETO PROPRIEDADE NAME PROPRIEDADE TEXT

Lblfrase “Digite uma frase

qualquer”

Txtfrase “”

Cmdcor “Cor”

Cmdfonte “Fonte”

Cmdabrir “Abrir”

Cmdsalvar “Salvar”

NESTE EXEMPLO NÃO

VOU NOMEÁ-LOS.

-------

Em seguida, vamos escrever o seguinte código dentro do botão “cmdcor”:

Figura 166

Escreveremos também o seguinte código dentro do botão fonte:

Figura 167

Page 36: COLÉGIO TÉCNICO “ANTÔNIO TEIXEIRA FERNANDES” CTI - … · Nesta apostila iremos manter (cadastrar / alterar / excluir / consultar) registros num banco de dados utilizando os

Curso de Informática – Cti / UniVap

Vb.net 2008 – Professor Alberson Wander Sá dos Santos P

ágin

a

No botão “cmdabrir” escreveremos a seguinte programação:

Figura 168

Por fim, no botão “cmdsalvar” deverá ser escrito a seguinte programação:

Figura 169

OBSERVAÇÃO IMPORTANTE:

- OBSERVE NA PROGRAMAÇÃO ACIMA, QUE FOI UTILIZADO O MÉTODO ShowDialog() . Este método é

utilizado para exibir a caixa de diálogo desejada.

- Cada linha de comando escrita, possui uma linha de comentário, explicando o que está acontencendo.

Page 37: COLÉGIO TÉCNICO “ANTÔNIO TEIXEIRA FERNANDES” CTI - … · Nesta apostila iremos manter (cadastrar / alterar / excluir / consultar) registros num banco de dados utilizando os

Curso de Informática – Cti / UniVap

Vb.net 2008 – Professor Alberson Wander Sá dos Santos P

ágin

a

36 – Objeto WebBrowser

Com este objeto poderemos criar nosso próprio navegador Web. Este objeto está disponível na guia

“Common Controls” e recebe o nome de WebBrowser. Ele tem a seguinte aparência:

Figura 170

Quando o controle WebBrowser for arrastado para o formulário, ele ocupará toda a sua área. Para

poder utilizá-lo melhor você deverá localizar a guia Smart Tag e clicar na opção Undock Parent Container,

conforme figura abaixo, para poder arrastar os demais controles para o formulário.

Figura 171

Os principais eventos deste controle são:

EVENTO QUANDO É EXECUTADO

Navigating Antes da navegação iniciar

Navigated Após a navegação

ProgressChanged Durante um download. Podemos programá-lo para saber quantos bytes foram

baixados e quantos ainda são esperados

DocumentCompleted Quando a página foi completamente carregada.

StatusTextChanged Executado sempre que altera-se o texto da barra de status.

Page 38: COLÉGIO TÉCNICO “ANTÔNIO TEIXEIRA FERNANDES” CTI - … · Nesta apostila iremos manter (cadastrar / alterar / excluir / consultar) registros num banco de dados utilizando os

Curso de Informática – Cti / UniVap

Vb.net 2008 – Professor Alberson Wander Sá dos Santos P

ágin

a

Já os métodos mais utilizados para este objeto são os seguintes:

MÉTODOS PARA QUE SERVEM

Navigate() Usado para carregar uma página indicada no objeto WebBrowser

GoBack() Usado para voltar para página visitada anteriormente.

GoForward() Usado para avançara para página visitada posteriormente.

GoHome() Usado para voltar para a página principal de um site que se está navegando.

GoSearch() Mostrar no WebBrowser o site padrão de busca, definido como padrão no windows.

Algumas propriedades importantes do objeto WebBrowser:

PROPRIEDADE PARA QUE SERVE

Name Dar nome ao objeto. Este nome será usado na programação.

StatusText Exibe/Armazena o conteúdo da barra de status, no momento que for usado.

Url Usada para armazenar o endereço da página que está carredada no objeto.

Para um melhor entendimento das funcionalidades do objeto WebBrowser, vamos desenhar o seguinte

formulário:

Figura 172

Page 39: COLÉGIO TÉCNICO “ANTÔNIO TEIXEIRA FERNANDES” CTI - … · Nesta apostila iremos manter (cadastrar / alterar / excluir / consultar) registros num banco de dados utilizando os

Curso de Informática – Cti / UniVap

Vb.net 2008 – Professor Alberson Wander Sá dos Santos P

ágin

a

Agora vamos alterar as seguintes propriedades dos objetos desenhados no formulário:

OBJETO PROPRIEDADE

NAME

PROPRIEDADE

TEXT

PROPRIEDADE

BORDERSTYLE

Webbrowser1

(manteremos o

nome padrão. Se

desejar altere.)

“” ---

Lblstatus “” FIXED SINGLE

Lblurl “Digite o endereço

da página desejada”

---

Txturl “” ---

Cmdnavegar “navegar” ---

Cmdposterior “Avançar” ---

Cmdvoltar “Voltar” ---

Cmdhome “Home deste site” ---

cmdpadrao “Página padrão de

busca”

---

cmdatual “Página Atual” ---

Agora sim, podemos programar os objetos desenhados no formulário.

Vamos escrever o seguinte código no botão “navegar”:

Figura 173

No botão “Avançar” escreva o seguinte programa:

Figura 174

Page 40: COLÉGIO TÉCNICO “ANTÔNIO TEIXEIRA FERNANDES” CTI - … · Nesta apostila iremos manter (cadastrar / alterar / excluir / consultar) registros num banco de dados utilizando os

Curso de Informática – Cti / UniVap

Vb.net 2008 – Professor Alberson Wander Sá dos Santos P

ágin

a

No botão “Voltar”, vamos escrever as seguintes linhas de programa:

Figura 175

No botão “Home deste site”, escreva o programa abaixo:

Figura 176

No botão “Página padrão de busca”, escreva:

Figura 177

No botão “Página Atual”, escreva:

Figura 178

Para finalizar, vamos escrever um código para atualizar a barra de status, sempre que uma página

estiver sendo carregada. Para tal, escreva o seguinte trecho de programa no evento “StatusTextChanged” do

objeto WebBrowser:

Figura 179

Page 41: COLÉGIO TÉCNICO “ANTÔNIO TEIXEIRA FERNANDES” CTI - … · Nesta apostila iremos manter (cadastrar / alterar / excluir / consultar) registros num banco de dados utilizando os

Curso de Informática – Cti / UniVap

Vb.net 2008 – Professor Alberson Wander Sá dos Santos P

ágin

a

37 – Manipulação de arquivo texto no vb.net

Quando programamos em uma linguagem qualquer, faz-se necessário conhecer a forma de

manipulação de arquivo do tipo texto.

Um arquivo do tipo texto é um tipo de arquivo não formatado. Como exemplos temos os arquivos

gravados no Bloco de Notas do Windows, ao contrário dos arquivos gravados no word, que são formatados.

No word também podemos criar arquivos do tipo texto, porém devemos ter o cuidado, de no momento

da gravação, definirmos o tipo do arquivo como “Texto”. Caso contrário, não poderemos manipulá-lo utilizando

os comandos que aprenderemos neste capítulo.

Este tipo de manuseio de dado (em arquivo texto) é muito utilizado em programação de computadores.

Existem programas, por exemplo, que geram arquivos html. Apesar de conterem códigos HTML são do tipo

texto.

Antes de criarmos um programa para manipular um arquivo texto qualquer, vamos conhecer alguns

comandos que iremos precisar para este fim.

37.1 – A classe System.IO

Vamos programar o formulário acima. Porém, para manuseio de arquivos textos devemos importar,

antes de tudo, a classe System.IO. Veja o exemplo de linha de programa para importar a classe citada:

Figura 181

37.2 – Criando o arquivo texto

Para criarmos o arquivo texto devemos usar a seguinte sintaxe:

Dim variavel As New StreamWriter(“ caminho_e_nomedoarquivo” , [True] )

Onde:

variavel – representa um objeto que representará o arquivo a ser aberto;

Page 42: COLÉGIO TÉCNICO “ANTÔNIO TEIXEIRA FERNANDES” CTI - … · Nesta apostila iremos manter (cadastrar / alterar / excluir / consultar) registros num banco de dados utilizando os

Curso de Informática – Cti / UniVap

Vb.net 2008 – Professor Alberson Wander Sá dos Santos P

ágin

a

StreamWriter – cria o objeto StreamWriter, que referenciará o arquivo que será aberto para

criação/escrita.

caminho_e_nomedoarquivo – indicaremos o caminho do arquivo, bem como seu nome (como

string);

[True] – este parâmetro é opcional, porém quando escrito (sem os colchetes), indica que qualquer

dado escrito no arquivo texto, será inserido após a última linha já gravada.

37.3 - Escrevendo num arquivo texto

È bom lembrar que para escrever um conteúdo num arquivo texto, o mesmo já deve estar aberto.

Use a sintaxe abaixo para escrever no arquivo texto:

variavel.WriteLine(“Conteudo”)

Onde:

Varivel – representa o objeto que representará o arquivo que já foi aberto anteriormente;

“Conteúdo” – representa o que você quer escrever no arquivo. Podemos usar variáveis neste local;

37.4 – Abrindo um arquivo para leitura

Para abrirmos um arquivo texto para leitura do seu conteúdo devemos usar a seguinte sintaxe:

Dim variavel As New StreamReader("caminho_e_nome_do_arquivo")

Onde:

variavel – representa o objeto que representará o arquivo a ser aberto para leitura;

StreamReader – cria o objeto StreamReader, que servirá unicamente para ler o arquivo referenciado

em caminho_e_nome_do_arquivo.

caminho_e_nome_do_arquivo – indicaremos neste local o caminho e nome do arquivo que será aberto

para leitura;

37.5 – Lendo um arquivo texto SEQUENCIALMENTE (Méto do ReadLine)

Para lermos um arquivo sequencialmente usaremos o método ReadLine. Este método lê uma linha do

arquivo aberto . Portanto, será necessário utilizá-lo dentro de uma estrutura de repetição .

Para utilizarmos este método, use a seguinte sintaxe:

linhalida = variavel.ReadLine

Page 43: COLÉGIO TÉCNICO “ANTÔNIO TEIXEIRA FERNANDES” CTI - … · Nesta apostila iremos manter (cadastrar / alterar / excluir / consultar) registros num banco de dados utilizando os

Curso de Informática – Cti / UniVap

Vb.net 2008 – Professor Alberson Wander Sá dos Santos P

ágin

a

Onde:

Linhalida – refere-se a variável do tipo string que armazenará o conteúdo da linha lida.

Variavel – refere-se ao arquivo aberto como StreamReader

37.6 – Lendo TODO arquivo texto (Método ReadToEnd)

Para lermos um arquivo inteiro, basta utilizarmos o método ReadToEnd. Este irá ler o arquivo desde o

primeiro caractere, contido na primeira linha, até o último caractere gravado na última linha do texto aberto.

Portanto não devemos usar este método dentro de estruturas de repetições.

Para utilizar esta forma de leitura de arquivo texto, utilize a seguinte sintaxe:

Arquivotodo = variavel.ReadToEnd

Onde:

Arquivotodo – indica o nome de uma variável do tipo string, usada para armazenar todo o texto lido.

variavel – refere-se ao arquivo aberto como StreamReader

37.7 – Programa GeraArquivoTexto

Vamos criar um programa para manipular um arquivo texto. Para isso, vamos criar o seguinte

formulário:

Figura 180

Page 44: COLÉGIO TÉCNICO “ANTÔNIO TEIXEIRA FERNANDES” CTI - … · Nesta apostila iremos manter (cadastrar / alterar / excluir / consultar) registros num banco de dados utilizando os

Curso de Informática – Cti / UniVap

Vb.net 2008 – Professor Alberson Wander Sá dos Santos P

ágin

a

Vamos alterar as seguintes propriedades dos objetos do formulário:

OBJETO PROPRIEDADE NAME PROPRIEDADE TEXT PROPRIEDADE

MULTILINE

Txttexto

“”

True

Cmdgerar “gerar arquivo texto” ---

Cmdlerarquivo “Ler arquivo texto” ---

Cmdconcatenação “concatenação na

seleção”

---

Cmdselecionando “selecionando todo o

texto”

---

Cmdselecionar10 “Selecionando 10

primeiros caracteres”

---

Cmdqtdeselecionada “Qtde de caracteres

selecionados”

---

Vamos abrir o botão “cmdgerar” e escrever a seguinte programação:

Figura 181

Vamos escrever também a programação para o botão “cmdlerarquivo”, veja a seguir:

Page 45: COLÉGIO TÉCNICO “ANTÔNIO TEIXEIRA FERNANDES” CTI - … · Nesta apostila iremos manter (cadastrar / alterar / excluir / consultar) registros num banco de dados utilizando os

Curso de Informática – Cti / UniVap

Vb.net 2008 – Professor Alberson Wander Sá dos Santos P

ágin

a

Figura 182

REPARE NO CÓDIGO ACIMA

Poderemos usar a rotina de repetição, para ler linha a linha do arquivo texto

OU

a linha destacada em azul, que lê todo o arquivo de uma só vez.

Dando continuidade, vamos escrever a programação para o botão “cmdconcatenação”:

Figura 183

No programa acima repare na PROPRIEDADE SelectText DA CAIXA DE TEXTO

Esta propriedade armazena o texto selecionado pelo usuário na caixa de texto.

Escreveremos agora a programação para o botão “cmdselecionado”

Figura 184

Nas linhas programadas acima usamos a propriedade SELECTALL da CAIXA DE TEXTO. Esta propriedade

seleciona todo o texto digitado na caixa de texto.

Esta propriedade não terá efeito se o método FOCUS não for escrito.

Page 46: COLÉGIO TÉCNICO “ANTÔNIO TEIXEIRA FERNANDES” CTI - … · Nesta apostila iremos manter (cadastrar / alterar / excluir / consultar) registros num banco de dados utilizando os

Curso de Informática – Cti / UniVap

Vb.net 2008 – Professor Alberson Wander Sá dos Santos P

ágin

a

A programação a seguir deve ser escrita no botão “cmdselecionar10”:

Figura 185

Nas linhas programadas acima usamos a propriedade SELECT() da CAIXA DE TEXTO.

Esta propriedade seleciona parte do texto digitado, iniciando da posição 0 (primeiro caractere)

até o caractere 9, ou seja, os 10 primeiros caracteres estarão selecionados.

Esta propriedade não terá efeito se o método FOCUS não for escrito.

Por fim, programaremos agora o botão “cmdqtdeselecionada”:

Figura 186

Na programação acima usamos a propriedade SELECTIONLENGTH da CAIXA DE TEXTO.

Esta propriedade RETORNA a quantidade de caracteres selecionados na caixa de texto.

Por esta razão criamos uma variável numérica para r eceber a quantidade de retornada pela

propriedade SelectionLength.

38 – Classe FileSystem (manipulando arquivos) e exe cutanto arquivos .exe

Podemos também manipular arquivos, pastas ou diretórios, e até mesmo o sistema operacional

usando a classe FileSystem. Com ela podemos por exemplo usar os comandos relacionados abaixo:

'cria a pasta teste2 na raiz da unidade c: FileSystem.MkDir( "c:\teste\" ) 'verificando se a pasta teste já está criada na raiz da unidade c: If FileSystem.Dir( "c:\teste" , FileAttribute.Directory) <> "" Then MsgBox( "Pasta já existe" ) End If

Page 47: COLÉGIO TÉCNICO “ANTÔNIO TEIXEIRA FERNANDES” CTI - … · Nesta apostila iremos manter (cadastrar / alterar / excluir / consultar) registros num banco de dados utilizando os

Curso de Informática – Cti / UniVap

Vb.net 2008 – Professor Alberson Wander Sá dos Santos P

ágin

a

'verificando se o arquivo teste.txt já existe na pasta teste na raiz da unidade c: If FileSystem.Dir( "c:\teste\teste.txt" , FileAttribute.Archive) <> "" Then MsgBox( "Arquivo já existe" ) End If 'remove a pasta teste2 (se ela estiver vazia) FileSystem.RmDir( "c:\teste2\" ) 'apaga todos os arquivos cujo nome seja debug, localizados na 'pasta teste2 FileSystem.Kill("c:\teste2\debug.*") 'retornará qual a pasta aberta naquele momento MsgBox(FileSystem.CurDir) 'renomear um arquivo existente FileSystem.Rename( "c:\teste\teste1.txt" , "c:\teste\texte2.txt" ) 'faz com que a unidade de armazenamento "e:" seja a unidade corrente (que será usada) 'FileSystem.ChDrive("e:\") MsgBox(FileSystem.CurDir) 'copiando o arquivo teste.txt, localizado na pasta c:\teste, para a raiz da unidade d:\ FileSystem.FileCopy( "c:\teste\teste.txt" , "d:\teste.txt" )

Outro código importante, além dos mostrados anteriomente, refere-se a execução de arquivos

executável (.EXE). A linha de comando abaixo fará o bloco de notas ser executado, e ao mesmo tempo será

carregado o arquivo “teste.txt” que está gravado na raiz da unidade c:\

System.Diagnostics.Process.Start( "C:\WINDOWS\notepad.exe" , “ C:\teste.txt" )

Poderíamos somente executar o bloco de notas, para isso escreveríamos a seguinte linha de comando:

System.Diagnostics.Process.Start( "C:\WINDOWS\notepad.exe" )

39 – Criação de Barras de Menu Para criação de uma barra de menu no vb.net, usamos o objeto MenuStrip. Este objeto está localizado na guia “MENU & TOOLBARS”, conforme mostrado na figua abaixo:

Figura 187

Page 48: COLÉGIO TÉCNICO “ANTÔNIO TEIXEIRA FERNANDES” CTI - … · Nesta apostila iremos manter (cadastrar / alterar / excluir / consultar) registros num banco de dados utilizando os

Curso de Informática – Cti / UniVap

Vb.net 2008 – Professor Alberson Wander Sá dos Santos P

ágin

a

Quando inserirmos este objeto num formulário, você terá a seguinte aparência:

Figura 188

Repare que o objeto não foi desenhado diretamente no formulário. Somente uma barra de menu vazia,

com o texto “TYPE HERE” está disponível na área do formulário.

Siga os passos abaixo para começar a criar um menu simples para seu programa:

1º passo:

Clique sobre “Type Here” e selecione a opção “MenuItem” no menu que for aberto, conforme ilustra

figura abaixo:

Figura 189

Page 49: COLÉGIO TÉCNICO “ANTÔNIO TEIXEIRA FERNANDES” CTI - … · Nesta apostila iremos manter (cadastrar / alterar / excluir / consultar) registros num banco de dados utilizando os

Curso de Informática – Cti / UniVap

Vb.net 2008 – Professor Alberson Wander Sá dos Santos P

ágin

a

2º passo:

Sua tela deverá ficar parecida com a tela abaixo:

Figura 190

3º passo:

Dê um clique com o mouse sobre “ToolStripMenuItem1”, para escrever o rótulo do menu que deverá

aparecer para o usuário. Neste caso, por exemplo, digitarei “&Arquivo”. Veja o que acontece:

Figura 191

Repare acima que foi criado um MINEMÔNICO abaixo da letra “A” do rótulo “Arquivo”. Isso facilitará o

acesso ao menu pelo usuário, utilizando as teclas de acesso “ALT+A”

4º passo:

Vamos criar agora uma opção “Novo” para o menu “Arquivo”. Para isso, vamos clicar no centro da área

“Type Here”, localizada abaixo do menu “Arquivo”. Desta forma o curso irá piscar neste local, indicando que um

submenu poderá ser criado. Veja o que deverá acontecer:

Figura 192

Page 50: COLÉGIO TÉCNICO “ANTÔNIO TEIXEIRA FERNANDES” CTI - … · Nesta apostila iremos manter (cadastrar / alterar / excluir / consultar) registros num banco de dados utilizando os

Curso de Informática – Cti / UniVap

Vb.net 2008 – Professor Alberson Wander Sá dos Santos P

ágin

a

5º passo:

Repare que o cursor estará piscando na área onde você clicou e novas opções de sub menu foram

abertas automaticamente. Agora digite “&Novo” e pressione a tecla “Enter”. Você deverá obter o seguinte

resultado:

Figura 193

6º passo:

Vamos criar uma combinação de teclas de atalhos para a opção “Novo”. Para isso, dê um simples

clique sobre a opção “Novo”. Em seguida, veja que a caixa de propriedades estará exibindo as características

da opção do menu “Novo”. Abra a propriedade “ShortcutKeys”, marque a opção “CTRL” e selecione na combo

Key um caracter para servir de atalho. Veja na figura abaixo a referida propriedade:

Figura 194

Vamos criar o atalho “CTRL+N” . A próxima figura demonstra como ficará o resultado obtido:

Page 51: COLÉGIO TÉCNICO “ANTÔNIO TEIXEIRA FERNANDES” CTI - … · Nesta apostila iremos manter (cadastrar / alterar / excluir / consultar) registros num banco de dados utilizando os

Curso de Informática – Cti / UniVap

Vb.net 2008 – Professor Alberson Wander Sá dos Santos P

ágin

a

Figura 196

Para programar a opção “Novo”, basta dar um duplo clique sobre esta opção. Desta forma será aberta

a seguinte área de programação:

Figura 197

Os mesmos passos seguidos até aqui, poderão ser repetidos para criar novos menus e suas opções.

Page 52: COLÉGIO TÉCNICO “ANTÔNIO TEIXEIRA FERNANDES” CTI - … · Nesta apostila iremos manter (cadastrar / alterar / excluir / consultar) registros num banco de dados utilizando os

Curso de Informática – Cti / UniVap

Vb.net 2008 – Professor Alberson Wander Sá dos Santos P

ágin

a

ANEXO 1

NOVO PROJETO CLIENTES (3º BIMESTRE)

Este projeto reduz a programação exposta na apostila, pois não será necessária a programação dos

botões: CADASTRAR e CONSULTAR.

A nova tela de CLIENTES deverá ter a seguinte aparência:

Page 53: COLÉGIO TÉCNICO “ANTÔNIO TEIXEIRA FERNANDES” CTI - … · Nesta apostila iremos manter (cadastrar / alterar / excluir / consultar) registros num banco de dados utilizando os

Curso de Informática – Cti / UniVap

Vb.net 2008 – Professor Alberson Wander Sá dos Santos P

ágin

a

Vejamos agora a programação para cada evento da no va tela de CLIENTES:

'importanto a classe SYSTEM.DATA.SQLCLIENT, para manipularmos registros 'do sql server Imports System.Data.SqlClient Public Class Form1 'CRIANDO A VARIÁVEL BOTAO PARA INDICARMOS FUTURAMENTE 'QUAL A OPERAÇÃO ESTAREMOS REALIZANDO NO BANCO DE DADOS Dim BOTAO As Integer 'CRIANDO A VARIÁVEL SEXO, PARA ARMAZENAR M=MASCULINO / F=FEMININO Dim sexo As String

FORM_LOAD Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'ESTIPULANDO O CAMINHO DA CONEXÃO caminhoconexao = "Data Source=.\SQLEXPRESS;AttachDbFilename=C:\3bim\projeto_Loja\projeto_Loja\LOJA.mdf;Integrated Security=True;User Instance=True" End Sub

TXTCODCLI_KEYPRESS Private Sub txtcodcli_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtcodcli.KeyPress If e.KeyChar = Convert.ToChar(13) Then If Not IsNumeric(txtcodcli.Text) Then MsgBox("Digite um código numérico para o cliente.", MsgBoxStyle.Critical, "Aviso:") txtcodcli.Focus() Exit Sub End If Dim conexao As New SqlConnection(caminhoconexao) Dim comando As New SqlCommand("Select count(*) from clientes where codcli = " & txtcodcli.Text, conexao) comando.CommandType = CommandType.Text Try conexao.Open() comando.ExecuteNonQuery() 'SE EXISTIR PELO MENOS 1 REGISTRO NA TABELA COM CÓDIGO INFORMADO PELO USUÁRIO If comando.ExecuteScalar >= 1 Then 'CRIANDO O SQL PARA BUSCAR O REGISTRO EXISTENTE comando.CommandText = "select * from clientes where codcli = " & txtcodcli.Text 'EXECUTANTO O SQL PARA BUSCAR O REGISTRO EXISTENTE E CRIANDO A TABELA 'TEMPORÁRIA (OU OBJETO) CHAMADA REGISTRO Dim registro As SqlDataReader = comando.ExecuteReader() Try 'LENDO O PRIMEIRO REGISTRO FILTRADO(NESTE CASO O ÚNICO REGISTRO) registro.Read() 'EXIBINDO O REGISTRO NA TELA txtnomecli.Text = registro.Item("nomecli") txtsalariocli.Text = registro.Item("salariocli") If registro.Item("sexocli") = "M" Then cbosexocli.Text = "Masculino" Else

Page 54: COLÉGIO TÉCNICO “ANTÔNIO TEIXEIRA FERNANDES” CTI - … · Nesta apostila iremos manter (cadastrar / alterar / excluir / consultar) registros num banco de dados utilizando os

Curso de Informática – Cti / UniVap

Vb.net 2008 – Professor Alberson Wander Sá dos Santos P

ágin

a

If registro.Item("sexocli") = "F" Then cbosexocli.Text = "Feminino" End If End If msknascimentocli.Text = registro.Item("nascimentocli") 'BOTÕES ALTERAR, EXCLUIR e CANCELAR DEVEM APARECER NA TELA PARA O USUÁRIO cmdalterar.Visible = True cmdexcluir.Visible = True cmdcancelar.Visible = True Catch ex As Exception MsgBox("Erro:" & Err.Number & ": " & Err.Description) End Try registro.Close() Else 'CASO O CLIENTE NÃO ESTEJA CADASTRADO 'PROTEGENDO O CÓDIGO DO CLIENTE, TRAVANDO O CAMPO CHAVE pnlchave.Enabled = False 'LIBERAR OS CAMPOS PARA DIGITAÇÃO DOS DADOS DO NOVO CLIENTE pnlcampos.Enabled = True 'BOTÃO CONFIRMA E CANCELA FICAM VISIVEIS cmdconfirmar.Visible = True cmdcancelar.Visible = True 'VAMOS FAZER CADASTRO, PORTANTO A VARIÁVEL BOTAO = 1 BOTAO = 1 'POSICIONANDO O CURSOR NO CAMPO TXTNOMECLI txtnomecli.Focus() End If Catch ex As Exception MsgBox("Erro:" & Err.Number & ": " & Err.Description) End Try conexao.Close() End If End Sub

CMDCANCELAR_CLICK Private Sub cmdcancelar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdcancelar.Click 'VOLTANDO A TELA PARA O ESTADO INICIAL, QUANDO A RODAMOS PELA PRIMEIRA VEZ pnlchave.Enabled = True pnlcampos.Enabled = False txtcodcli.Text = "" txtnomecli.Text = "" txtsalariocli.Text = "" cbosexocli.Text = "" msknascimentocli.Text = "" cmdalterar.Visible = False cmdexcluir.Visible = False cmdconfirmar.Visible = False cmdcancelar.Visible = False txtcodcli.Focus() End Sub

Page 55: COLÉGIO TÉCNICO “ANTÔNIO TEIXEIRA FERNANDES” CTI - … · Nesta apostila iremos manter (cadastrar / alterar / excluir / consultar) registros num banco de dados utilizando os

Curso de Informática – Cti / UniVap

Vb.net 2008 – Professor Alberson Wander Sá dos Santos P

ágin

a

CMDALTERAR_CLICK Private Sub cmdalterar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdalterar.Click 'PROTEGENDO O CÓDIGO DO CLIENTE CONTRA ALTERAÇÃO pnlcampos.Enabled = True 'LIBERANDO OS CAMPOS DA TELA PARA ALTERAÇÃO DO REGISTRO EXIBIDO pnlchave.Enabled = False 'TORNANDO OS BOTÕES ALTERAR e EXCLUIR INVISÍVEIS cmdalterar.Visible = False cmdexcluir.Visible = False 'TORNANDO VISÍVEL O BOTÃO CONFIRMAR cmdconfirmar.Visible = True 'VAMOS FAZER ALTERAÇÃO, PORTANTO A VARIÁVEL BOTAO = 2 BOTAO = 2 'COLOCANDO O CURSOR NO CAMPO TXTCODCLI txtcodcli.Focus() End Sub

CMDEXCLUIR_CLICK Private Sub cmdexcluir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdexcluir.Click 'PROTEGENDO O CÓDIGO DO CLIENTE CONTRA ALTERAÇÃO pnlcampos.Enabled = False 'PROTEGENDO OS CAMPOS DA TELA PARA NÃO PERMITIR ALTERAÇÃO DOS DADOS pnlchave.Enabled = False 'TORNANDO OS BOTÕES ALTERAR e EXCLUIR INVISÍVEIS cmdalterar.Visible = False cmdexcluir.Visible = False 'TORNANDO VISÍVEL O BOTÃO CONFIRMAR cmdconfirmar.Visible = True 'VAMOS FAZER EXCLUSÃO, PORTANTO A VARIÁVEL BOTAO = 3 BOTAO = 3 End Sub

CMDCONFIRMAR_CLICK Private Sub cmdconfirmar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdconfirmar.Click 'FAZENDO OS TEXTES DE CONSISTÊNCIAS DE DADOS PARA O NOVO REGISTRO DE CLIENTES 'VERIFICANDO SE O CAMPO DO NOME DO CLIENTE FOI PREENCHIDO If txtnomecli.Text.Trim = "" Then MsgBox("Informe o nome do cliente.", MsgBoxStyle.Information, "Aviso:") txtnomecli.Focus() Exit Sub End If 'VERIFICANDO SE O SALÁRIO É UM NÚMERO If Not IsNumeric(txtsalariocli.Text) Then MsgBox("Informe corretamente o salário do cliente.", MsgBoxStyle.Exclamation, "Aviso:") txtsalariocli.Focus() Exit Sub End If

Page 56: COLÉGIO TÉCNICO “ANTÔNIO TEIXEIRA FERNANDES” CTI - … · Nesta apostila iremos manter (cadastrar / alterar / excluir / consultar) registros num banco de dados utilizando os

Curso de Informática – Cti / UniVap

Vb.net 2008 – Professor Alberson Wander Sá dos Santos P

ágin

a

'VERIFICANDO SE O COMBO DO SEXO NÃO ESTÁ VAZIO If cbosexocli.Text.Trim = "" Then MsgBox("Selecione o sexo do cliente.", MsgBoxStyle.Exclamation, "Aviso") cbosexocli.Focus() Exit Sub End If 'VERIFICANDO SE A DATA DE NASCIMENTO É UMA DATA VÁLIDA If Not IsDate(msknascimentocli.Text) Then MsgBox("Informe corretamente a data de nascimento.", MsgBoxStyle.Information, "Aviso:") msknascimentocli.Focus() Exit Sub End If 'criando conexão com o banco, diante do caminho indicado na variável caminhoconexao Dim conexao As New SqlConnection(caminhoconexao) Dim comando As SqlCommand = conexao.CreateCommand Dim sexo As String sexo = cbosexocli.Text.ToUpper.First 'TROCANDO A VÍRGULA (CASO APAREÇA) DO SALÁRIO, POR PONTO txtsalariocli.Text = Replace(txtsalariocli.Text, ",", ".") Select Case BOTAO Case 1 'criando a instrução SQL para cadastrar o registro digitado comando.CommandText = ("insert into clientes(codcli, nomecli, salariocli, sexocli, nascimentocli) values(" & txtcodcli.Text & ",'" & txtnomecli.Text & "'," & txtsalariocli.Text & ",'" & sexo & "',CONVERT(datetime,'" & msknascimentocli.Text & "',103))") Case 2 'criando a instrução SQL para alterar o registro exibido comando.CommandText = ("update clientes set nomecli = '" & txtnomecli.Text & "',salariocli= " & txtsalariocli.Text & ", sexocli= '" & sexo & "', nascimentocli= CONVERT(datetime,'" & msknascimentocli.Text & "',103) where codcli = " & txtcodcli.Text) Case 3 'criando a instrução SQL para excluir o registro exibido comando.CommandText = ("delete from clientes where codcli = " & txtcodcli.Text) End Select Try 'estabelecendo a conexão com o banco de dados conexao.Open() 'executando o comandtext definido(operação: cadastro, alteração ou exclusão) comando.ExecuteNonQuery() 'encerrando a conexão com o banco de dados conexao.Close() Catch ex As Exception MsgBox("Erro: " & Err.Number & "-" & Err.Description, MsgBoxStyle.Critical, "Aviso:") End Try 'executando a programação do botão cancelar, ou seja, 'limpando a tela e voltando-a para o estado inicial cmdcancelar_Click(sender, e) End Sub End Class