Mini curso de Visual Basic.NET



Documentos relacionados
Iniciar o Data Adapter Configuration Wizard. Toolbox Data Duplo clique em OleDbDataAdapter. Botão next na caixa de diálogo

Reconhecer alguns dos objectos VBA Automatizar bases de dados recorrendo à programação VBA e scripts SQL

O AMBIENTE DE TRABALHO DO WINDOWS

A VISTA BACKSTAGE PRINCIPAIS OPÇÕES NO ECRÃ DE ACESSO

Tarefa Orientada 2 Aplic. Manutenção de Produtos - DataGridView

INTRODUÇÃO AO MODELO ADO.NET (DESCONECTADO)

MICROSOFT ACCESS MICROSOFT ACCESS. Professor Rafael Vieira Professor Rafael Vieira

UNIDADE 2: Sistema Operativo em Ambiente Gráfico

Sistema Operativo em Ambiente Gráfico

1 Code::Blocks Criação de projetos

Tarefa Orientada 2 Criar uma base de dados

Ambiente de trabalho. Configurações. Acessórios

Introdução ao Microsoft Windows

Microsoft Windows. Aspectos gerais

Referencial do Módulo B

Conceitos importantes

A interface do Microsoft Visual Studio 2005

FIGURA. 2.2 ECRÃ DE TRABALHO

Acesso a Banco de Dados usando C# (MySql Provider)

Manipulação de Células, linhas e Colunas

No final desta sessão o formando deverá ser capaz de aceder ao Word e iniciar um novo documento.

2. Utilitários de sistema para ambiente Windows Ferramentas de gestão de ficheiros

CADERNOS DE SOCIOMUSEOLOGIA Nº

COMPETÊNCIAS BÁSICAS EM TIC NAS EB1

MICROSOFT POWERPOINT

Iniciação à Informática

O WINDOWS 98 é um sistema operacional gráfico, multitarefa, produzido pela Microsoft.

Configuração do Ambiente de Trabalho

P S I 2. º A N O F 5 M E S T R E / D E T A L H E E P E S Q U I S A. Criar uma relação mestre-detalhe. Pesquisa de informação

7.3. WINDOWS MEDIA PLAYER 12

WINDOWS. O Windows funciona como um Sistema Operativo, responsável pelo arranque do computador.

Deverá ser apresentada uma caixa de combinação para auxiliar o utilizador a escolher o distrito de residência do entrevistado.

Microsoft Office FrontPage 2003

Aplicações de Escritório Electrónico

Aplicações de Escritório Electrónico

Gescom isales. Aplicação Mobile Profissional para Vendedores

Usando o Excel ESTATÍSTICA. A Janela do Excel Barra de título. Barra de menus. Barra de ferramentas padrão e de formatação.


Guia e Utilização do Visual Studio 6.0

Oficina de Construção de Páginas Web

Tarefa Orientada 6 Edição de Dados

Utilizar o Microsoft Offi ce OneNote 2003: Iniciação rápida

INSTALAÇÃO DO SAGE 2008 NO WINDOWS XP

DESENVOLVIMENTO DE SOFTWARE AULA 06 TEORIA. Prof. Celso Candido ADS / REDES / ENGENHARIA

Dicas para usar melhor o Word 2007

Relatório SHST

LeYa Educação Digital

UNIDADE 2: Sistema Operativo em Ambiente Gráfico

Microsoft Excel Macro V. Índice 16-) Formulários ) Gerando código para o Formulário... 49

ZSRest e ZSPos Multiposto

Formador: Carlos Maia

ZS Rest. Manual Profissional. BackOffice Mapa de Mesas. v2011

Gestor de Janelas Gnome

Manual do utilizador. Aplicação de agente

Dim formulário As Object formulário = Me Me.Text = "Título"

Pesquisa e organização de informação

ZS Rest. Manual Avançado. Ementas : e SMS. v2011

OpenBook reconhecimento de caracteres para voz

Tecnologias da Informação e Comunicação: Sistema Operativo em Ambiente Gráfico

Copyright 2008 GrupoPIE Portugal, S.A.

4.1. TRABALHAR COM O CALENDÁRIO

O Windows 7 é um sistema operacional desenvolvido pela Microsoft.

bit Tecnologia ao Serviço do Mundo Rural

Equipa PTE. Janeiro 2012

C# - Conexão com MySQL

Tarefa 18: Criar Tabelas Dinâmicas a partir de Listas de Excel

OBJECTIVO Primeiros passos no processamento de texto

Seu manual do usuário EPSON LQ-630

Barra de ferramentas padrão. Barra de formatação. Barra de desenho Painel de Tarefas

5 - Se o documento estiver completo, com os campos totalmente inseridos e com o aspecto que pretende, poderá guardá-lo.

Guia Passo a Passo de Actualização do Windows 8.1

Folha de Cálculo Introdução à Folha de Cálculo

Ficha prática nº 7. SGBD Microsoft Access e SQL Server

TUTORIAL DO ACCESS PASSO A PASSO. I. Criar um Novo Banco de Dados. Passos: 1. Abrir o Access 2. Clicar em Criar um novo arquivo

Google Drive. Passos. Configurando o Google Drive

PROGRAMANDO EM C# ORIENTADO A OBJETOS

Manual Sistema de Autorização Online GW

O Manual do Desktop Sharing. Brad Hards Tradução: Pedro Morais

SAFT para siscom. Manual do Utilizador. Data última versão: Versão: Data criação:

XD Fase B - Novas Implementações

PRIMAVERA EXPRESS: Funcionalidades do Produto

1.1. Clique no botão Iniciar, seleccione Todos os programas, Microsoft Office e no submenu aberto escolha o programa Microsoft FrontPage.

Acronis Servidor de Licença. Manual do Utilizador

Módulo 3936 ASP.NET. Financiado pelo FSE

b 1 Copyright In9 Mídia Soluções Digitais Inc. All rights reserved.


Linguagem de Programação Procedural (VB) Prof. MSc Eng Marcelo Bianchi AULA 01 - INTRODUÇÃO AO VB

Migrar para o Access 2010

EIC. Projecto I. Manual do Utilizador. Vídeo Vigilância Abordagem Open Source. Curso: Engenharia de Informática e Comunicações Ano Lectivo: 2005/2006

MANUAL DO UTILIZADOR

Aplicações de Escritório Electrónico

NetBeans. Conhecendo um pouco da IDE

Microsoft PowerPoint 2003

GUIA INTEGRA SERVICES E STATUS MONITOR

Manual do Visualizador NF e KEY BEST

Acesso a Banco de Dados usando C#

Manual de Utilização. Site Manager. Tecnologia ao serviço do Mundo Rural

P redigl o bal Pesquisa de Imóveis D o c u m e n t o d e I m p l e m e n t a ç ã o d e M ó d u l o s

GESTÃO DE INFORMAÇÃO PESSOAL OUTLOOK (1)

Microsoft Visual Studio Express 2012 for Windows Desktop

Transcrição:

Mini curso de Visual Basic.NET Índice Introdução... 2 Exercício 1... 2 Exercício 2... 3 Exercício 3... 4 Exercício 4... 4 ToolTip... 6 Menus... 7 Teclas de atalho... 8 Try Catch... 9 Janelas Modal... 11 Aplicações MDI... 12 Caixas de diálogo... 13 Barra de estado... 16 Timer... 17 Ícone na área de notificação... 18 Menus de contexto... 19 Acesso a dados... 20 ADO.NET... 20 Consulta de um registo... 22 Commands... 23 Publicar uma aplicação... 25 Inserir pastas e ficheiros... 25 Debug... 26 Fazer o publish... 27 Instalação... 30 1 / 31

Introdução Este pequeno manual resulta de uma acção de formação, onde os formandos já tinham noções de programação, pelo que não demonstra os primeiros passos na programação e na linguagem VB.NET. Foram utilizados alguns exercícios como introdução à sintaxe e ao IDE (integrated development environment ambiente integrado de desenvolvimento) usado, o VB.NET 2008 Express fornecido gratuitamente pela Microsoft. Com o lançamento de novas versões do IDE da Microsoft, poderá ser necessário alguma adaptação destas matérias, sendo esta tipicamente simples. Exercício 1 Criar uma aplicação de nome botoes.exe, com as seguintes características: 1. Tem quatro botões, um em cada canto do form; 2. O form tem um ícone diferente do default; 3. Ao clicar em cada botão, abre uma msgbox; 4. Cada msgbox tem um ícone e botões diferentes; 5. Ao redimensionar o form, os botões mantêm-se nos cantos. Solução do exercício: Public Class Form1 2 / 31

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click MsgBox("Mensagem 1", MsgBoxStyle.Critical + MsgBoxStyle.OkOnly, "MSG 1") End Sub Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click MsgBox("Mensagem 2", MsgBoxStyle.Information + MsgBoxStyle.RetryCancel, "MSG 2") End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click MsgBox("Mensagem 3", MsgBoxStyle.Question + MsgBoxStyle.YesNoCancel, "MSG 3") End Sub Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click MsgBox("Mensagem 4", MsgBoxStyle.Exclamation + MsgBoxStyle.AbortRetryIgnore, "MSG 4") End Sub End Class Exercício 2 Criar uma aplicação de nome impossivel.exe, com as seguintes características: 1. Tem dois botões, um de cada lado do form; 2. Apenas um botão está visível; 3. Ao passar por cima do botão, o mesmo botão desaparece e aparece o outro botão. Solução do exercício: Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Button1.Show() Button2.Hide() End Sub 3 / 31

Private Sub Button1_MouseHover(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.MouseHover Button1.Hide() Button2.Show() End Sub Private Sub Button2_MouseHover(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.MouseHover Button1.Show() Button2.Hide() End Sub End Class Exercício 3 Criar uma aplicação de nome lista.exe, com as seguintes características: 1. Tem uma caixa de texto, dois botões e uma listbox; 2. O primeiro botão adiciona à lista, o texto da caixa de texto; 3. Ao adicionar um elemento, a caixa de texto fica vazia; 4. O segundo botão elimina da lista o elemento seleccionado. Solução do exercício: Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click ListBox1.Items.Insert(0, TextBox1.Text) TextBox1.Text = String.Empty End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click ListBox1.Items.Remove(ListBox1.SelectedItem) End Sub End Class Exercício 4 Criar uma aplicação de nome tabuada.exe, com as seguintes características: 1. Tem uma caixa de texto e um botão; 4 / 31

2. Ao clicar no botão, abre um msgbox com a tabuada. Solução do exercício: Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim str As String = String.Empty For i As Integer = 1 To 10 str = str & i & " x " & TextBox1.Text & " = " & (i * TextBox1.Text) & Chr(13) Next MsgBox(str, MsgBoxStyle.Information, "Tabuada") End Sub End Class 5 / 31

ToolTip O tooltip é a pequena caixa, normalmente de fundo amarela, que surge junto ao cursor do rato quanto este se encontra sobre um objecto, e contém algum texto, tipicamente uma ajuda ou informação adicional sobre esse mesmo objecto. No VB, nenhum objecto tem, à partida, uma propriedade para definir o texto do tooltip, sendo necessário adicionar o objecto ToolTip a cada formulário onde é pretendido definir tooltips. Ao adicionar o objecto ToolTip, este não surge no form, mas sim numa região fora deste, em baixo no IDE. Isto porque o objecto não está sempre presente no form apenas surge se for configurado nos objectos do form. A nova propriedade que surge nos objectos do form tem o nome ToolTip on ToolTip1. Significa que se houver mais objectos ToolTip no form, surgem novas propriedades nos objectos, sendo possível p.ex. usar formatos diferentes de ToolTip em objectos diferentes. A configuração do ToolTip, como as cores ou um ícone, é feita nas propriedades do próprio objecto ToolTip. 6 / 31

Menus Os menus típicos de uma aplicação, que surgem no topo a seguir à barra de título, disponibilização o acesso às diversas opções da aplicação. No VB, o menu é gerado pelo objecto MenuStrip. Este objecto é adicionado à região em baixo no IDE, e é criado uma barra no topo do form é nessa barra que se define o menu. A definição do menu é muito intuitiva, bastando clicar e escrever o nome de cada opção de menu. Além do objecto, também cada opção de menu criada tem as suas próprias propriedades. Podem definir os menus (1º nível) e as várias opções nos níveis inferiores (2º nível, 3º nível, etc). Para programar cada opção do menu, basta fazer duplo clique sobre a opção para o evento Click, ou seleccionar a opção e escolher, nos eventos, o evento pretendido. Em tudo semelhante p.ex. a um botão. 7 / 31

Teclas de atalho As teclas de atalho servem para aceder a um objecto de uma maneira rápida uma combinação de teclas em substituição do clique do rato. Essa combinação de teclas é a tecla ALT e mais uma letra (número ou símbolo). Para definir qual a tecla de atalho, na propriedade Text, coloca-se o símbolo & ( e comercial) à esquerda da letra / número que se pretende usar como atalho. Ao clicar na tecla ALT, os caracteres definidos como atalhos surgem sublinhados aplicável p.ex. ao menu a um botão. No caso de haver um atalho num label, e de haver uma textbox (ou outro elemento que pode ter focus ficar activo como uma checkbox ou uma combobox), o atalho coloca o focus no elemento que tiver a propriedade TabIndex (índice do TAB) imediatamente seguinte à do label. 8 / 31

Try Catch O Try Catch é usado para executar um bloco de código VB, e em caso de erro, previne a aplicação de terminar abruptamente. Erro quanto executado em debug: Erro quando executado a partir do executável: 9 / 31

O bloco Try contém o código a executar. Caso ocorra um erro (designada por excepção) nesse bloco a execução passa de imediato para o bloco Catch onde o erro é tratado. Pode-se mostrar uma mensagem mais amigável ao utilizador (em vez de um erro) ou enviar um email ao responsável da informática com o erro que ocorreu. Por fim, e opcionalmente, pode existir um bloco Finally, cujo código executa quer tenha havido ou não um erro no bloco Try para libertar os recursos usados, como um ficheiro aberto ou uma ligaçãoa uma base de dados. Dim n As Integer Try n = 1 + TextBox1.Text Catch ex As Exception MsgBox("Erro: " & ex.message) Finally 'código que executa sempre End Try No bloco Catch, a variável do tipo Exception permite o acesso ao detalhe do erro. Enquanto que ex.message contém uma mensagem indicativa do erro, já ex.tostring() contém toda a informação do erro (como o erro ou a linha em que ocorreu). 10 / 31

Janelas Modal Uma janela (form), quando é aberta a partir de outra, pode ser aberta de dois modos - Modal ou não Modal. Quando uma janela é Modal, não é permitido clicar noutra janelas da aplicação, enquanto a própria janela (Modal) não for fechada. Ou seja, uma janela Modal fica sempre activa enquanto não for fechada. Já no caso de uma janela não Modal, é possível clicar noutra janela, passando esta a estar activa, deixando de estar activa a janela anterior ou seja há liberdade de ver livremente as janelas (só uma de uma de cada vez é que pode estar activa). ' abrir um form modal Form1.ShowDialog() ' abrir um form não modal Form1.Show() 11 / 31

Aplicações MDI Uma aplicação pode usar um ou mais forms, sendo que quando estes são independentes, chama-se SMI Single Document Interface. É o modo predefinido no VB. Quando uma aplicação usa vários forms, e onde existe a relação de form pai form filho, chama-se MDI Multiple Document Interface. Os forms pai podem albergar forms filho. Para tal, o form pai deve ter na propriedade IsMdiContainer o valor true. Form1 sem ser MDI container: Form1 MDI container: No form pai, deve-se definir que esse form é o pai dos outros forms. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Form2.MdiParent = Me End Sub Ao fazer show() do form2, este surge dentro do form pai. 12 / 31

Caixas de diálogo As caixas de diálogo servem para pedir ao utilizador determinada informação. O VB disponibiliza algumas caixas de diálogo, como p.ex. para selecção de uma cor, para selecção de fonte e tamanho, para escolher um ficheiro a abrir, ou para escolher o nome do ficheiro a guardar. Todos os dialogs são janelas modais. Para escolher uma cor, e após adicionar ao form o objecto ColorDialog (que surge em baixo no IDE): ColorDialog1.ShowDialog() Surge então: Para aplicar a cor escolhida no dialog à cor do texto de um label: Label1.ForeColor = ColorDialog1.Color 13 / 31

Para escolher uma fonte (e tamanho do texto), e após adicionar ao form o objecto FontDialog (que surge em baixo no IDE): FontDialog1.ShowDialog() Surge então: Para aplicar a fonte e tamanho escolhidos no dialog ao texto de um label: Label1.Font = FontDialog1.Font Para escolher o ficheiro a ler, e após adicionar ao form o objecto OpenFileDialog (que surge em baixo no IDE): OpenFileDialog1.ShowDialog() Surge então: Para mostrar o nome do ficheiro escolhido no dialog no texto de um label: Label1.Text = OpenFileDialog1.SafeFileName 14 / 31

Para escolher o nome do ficheiro a gravar, e após adicionar ao form o objecto SaveFileDialog (que surge em baixo no IDE): SaveFileDialog1.ShowDialog() Surge então: Para mostrar o nome e caminho do ficheiro guardado (escolhido no dialog) no texto de um label: Label1.Text = SaveFileDialog1.FileName 15 / 31

Barra de estado A maioria das aplicações Windows tem, no fundo da janela, uma barra barra de estado. Nessa barra de estado, surgem diversos tipos de informação. Após adicionar a um form o objecto StatusStrip, surge no form uma barra: Nesta barra de estado (status bar), é possível adicionar objectos de quatro tipos: 16 / 31

Timer O objecto Timer serve para executar um bloco de VB a cada X tempo. Este tempo é definido em milissegundos. Há duas propriedades importantes Enabled, que activa ou não o Timer (por omissão está False), e o Interval, onde se define o número de milissegundos. O local onde se define o que é para fazer (X em X milissegundos) é no evento Tick, o único evento do objecto Timer. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick Label1.Text = Now End Sub No label surge então a data / hora (resultado do Now), que é actualizada a cada 1000 milissegundos (valor da propriedade Interval). Não esquecer de colocar True na propriedade Enabled. 17 / 31

Ícone na área de notificação Algumas aplicações usam um ícone na área de notificação onde se encontra o relógio, e que pertence à barra de tarefas. Para que uma aplicação VB tenha também ela um ícone junto ao relógio, basta usar o objecto NotifyIcon. Para que surja na área de notificação, é necessário definir o ícone (que por omissão não vem definido) propriedade Icon. Ao executar a aplicação, o ícone surge na área de notificação. 18 / 31

Menus de contexto Os menus de contexto (context menus) são os menus que surgem quando se clica com o botão direito sobre um objecto. Tipicamente este menu é adequado ao objecto, ou seja, tem opções específicas de acordo com o objecto clicado. O objecto é o ContextMenuStrip, e podem ser usados diversos ContextMenuStrip, para definir menus diferentes que depois são associados aos respectivos objectos. A definição do menu é em tudo igual ao objecto MenuStrip define-se o texto, e clica-se para definir o evento Click. Private Sub FecharToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles FecharToolStripMenuItem.Click Application.Exit() End Sub Para usar um menu de contexto, basta associá-lo na propriedade ContextMenuStrip p.ex. de um botão ou de um NotifyIcon. Ao clicar com o botão direito no ícone da aplicação, surge então o menu de contexto. 19 / 31

Acesso a dados O VB.NET (e as restantes linguagens de programação.net) permite ligar a uma grande variedade de bases de dados. O.NET traz um novo modo como é feita a ligação e manipulação de dados, permitindo também essa manipulação do modo mais clássico. ADO.NET O ADO.NET (versão.net do antigo ActiveX Data Objects) permite lidar com os dados de uma base de dados de diversas formas, desde a modo como se liga à base de dados até ao modo como trata os dados. Para ligar a uma base de dados é usado um.net Data Provider. É ele que permite usar determinado tipo de base de dados. Exemplo: OLE DB.NET Data Provider o Liga a qualquer fonte de dados (que suporte OLE) o Necessita de identificar o provider ( tipo de origem de dados) o Definido no namespace de nome System.Data.OleDB SQL Server.NET Data Provider o Liga somente ao SQL Server (optimizado para este) o Definido no namespace de nome System.Data.SqlClient Existem outros providers, que não fazem parte da.net Framework (necessitam de ser instalados à parte) destinados a uma melhor optimização (para Oracle ou MySQL p.ex.). O ADO.NET tem a seguinte arquitectura. Resumindo, e após a ligação (connection) à base de dados é possível: 1. Ler / escrever dados através de um comando (e usar um DataReader para ler dados p.ex.), 2. Usar um DataAdapter na ligação, ficando os dados num DataSet. Os dados, dentro do DataSet (e transparente para o utilizador) são manipulados via XML. 20 / 31

Exemplos de algumas classes: Connection o Estabelece a ligação a uma origem de dados. Command o Executa comandos sobre a base de dados. DataReader o Usado com o objecto Command disponibiliza acesso read-only, forward-only a um conjunto de registos obtidos a partir de uma base de dados executa sem o uso de um DataSet, para disponibilização imediata de dados. DataAdapter o Interface entre o DataSet e a base de dados Exemplo de algumas classes: DataTable o Referencia uma tabela no DataSet. DataRow o Referencia registos (linhas) de um DataTable. DataColumn o Referencia um campo (coluna) de um DataTable. ConstrainCollection o Permite Impor restrições sobre os dados de um DataTable. DataRelation o Relaciona dois objectos DataTable através do objecto DataColumn. 21 / 31

Consulta de um registo Exemplo com um command ' connection - ligação à base de dades Dim conn As New OleDbConnection ' definir a ligação à DB conn.connectionstring = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=C:\amigos.mdb" ' abrir a ligação conn.open() ' comando SQL Dim sql As String ' definir o SQL e configura o command sql = "SELECT id,nome,telefone FROM amigos WHERE ID=" & id.text Dim cmd As New OleDbCommand(sql, conn) ' definir um datareader, que vai receber o resultado da query Dim dr As OleDbDataReader ' executa o comando - o resultado fica no datareader dr = cmd.executereader ' ler os dados do datareader dr.read() ' coloca nos textboxes cada campo do datareader (1º row) TextBox1.Text = dr.item("id") TextBox2.Text = dr.item("nome") TextBox3.Text = dr.item("telefone") ' fecha a ligação à DB conn.close() Exemplo com um DataSet ' connection - ligação à base de dades Dim conn As New OleDbConnection ' definir a ligação à DB conn.connectionstring = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=C:\amigos.mdb" ' abrir a ligação conn.open() ' comando SQL Dim sql As String ' definir o SQL e executa-o atraves do dataadapter sql = "SELECT id,nome,telefone FROM amigos WHERE ID=" & id.text Dim da = New OleDbDataAdapter(sql, conn) ' dataset - conjunto de tabelas (datatables) mas em memória Dim ds As New DataSet ' cria uma datatable (friends) dentro do dataset e preenche-a com o resultado do da da.fill(ds, "friends") ' coloca nos textboxes cada campo, do row (registo) 0 (é o 1º) da datatable friends TextBox1.Text = ds.tables("friends").rows(0).item("id") TextBox2.Text = ds.tables("friends").rows(0).item("nome") TextBox3.Text = ds.tables("friends").rows(0).item("telefone") ' fecha a ligação à DB conn.close() ' limpar o dataset ds.clear() 22 / 31

Commands Dando seguimento ao descrito no livro da FCA fornecido, o uso de commands (em vez de DataSet) mostra-se mais simples em virtude de o conceito do DataSet, DataTable e demais classes representar um maior esforço de aprendizagem (mas também uma maior flexibilidade). Para a execução de um comando que não tem retorno de registos (INSERT, UPDATE e DELETE), o código a usar é: Dim conn As New OleDbConnection conn.connectionstring = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=C:\amigos.mdb" conn.open() Dim sql As String sql = "INSERT... ou UPDATE... ou DELETE..." Dim cmd As New OleDbCommand(sql, conn) cmd.executenonquery() conn.close() O método ExecuteNonQuery() executa a query, e tem como retorno não registos (dados) mas o número de registos que foram mexidos pela queryl (número de apagados ou actualizados p.ex.).... sql = "UPDATE amigos set nome='nome' WHERE telefone='123'" Dim cmd As New OleDbCommand(sql, conn) Dim n As Integer n = cmd.executenonquery() MsgBox("Número de registos: " & n, MsgBoxStyle.Information) conn.close()... Assim, e supondo que o resultado da query seria 2 registos (havia dois registos com o telefone 123), o resultado seria: 23 / 31

No campo da leitura de dados de uma base de dados, há dois métodos. O ExecuteScalar devolve o primeiro campo do primeiro registo ou seja devolver apenas um valor (o primeiro). Útil quando apenas se procura uma coluna de um registo.... sql = "SELECT nome FROM amigos WHERE id=" & id.text Dim cmd As New OleDbCommand(sql, conn) Dim str As String str = cmd.executescalar MsgBox("Primeiro campo: " & str, MsgBoxStyle.Information) conn.close()... Para a leitura de vários registos e colunas, o método a usar é o ExecuteReader. Neste caso, é necessário percorrer todos os registos que fazem parte do retorno da query.... sql = "SELECT nome FROM amigos WHERE id >= " & id.text Dim cmd As New OleDbCommand(sql, conn) Dim dr As OleDbDataReader dr = cmd.executereader While dr.read() MsgBox("Nome: " & dr.item("nome"), MsgBoxStyle.Information) End While conn.close()... Para ler os registos e adicionar a uma listbox.... sql = "SELECT id, nome FROM amigos" & id.text Dim cmd As New OleDbCommand(sql, conn) Dim dr As OleDbDataReader dr = cmd.executereader While dr.read() ListBox1.Items.Add(dr.Item("nome")) End While conn.close()... 24 / 31

Publicar uma aplicação O VB.NET 2008 Express permite publicar uma aplicação, para que esta possa ser instalada. A publicação pode ser para um servidor Web (para ser instalada online via browser) ou para o disco para ser instalada offline, p.ex. a partir de um CD. Inserir pastas e ficheiros Antes de publicar, há que garantir que os ficheiros necessários à aplicação estejam dentro do projecto. Para criar pastas: Botão direito sobre o projecto, escolher Add New Folder e depois definir o nome: Para adicionar ficheiro: Arrastar e largar dentro do projecto: 25 / 31

Botão direito sobre o projecto, escolher Add Existing Item e depois seleccionar os itens a adicionar: Debug Ao fazer debug da aplicação, ainda no VB.NET, é criado um ficheiro executável, dentro de \Bin\Debug, dentro do projecto. No entanto, nem todas as pastas e ficheiros são colocados na pasta Debug, pelo que alguma funcionalidade que dependesse destes não correria normalmente. Assim, é normal ter que recorre a directivas de compilação. Estas directivas de compilação indicam que pode haver código que apenas compila p.ex. em modo debug. As directivas de compilação são identificados pelo # (cardinal) no If Then Else e pela constante DEBUG (no exemplo há mais) Imports System.Data.OleDb Public Class Form1 #If DEBUG Then ' é compilado se estiver em debug Public dbconn As String = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=D:\cinema_v2.mdb" Public pathimagens As String = "D:\imagens\" #Else ' é compilado caso não esteja em debug Public dbconn As String = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application.StartupPath & "\dados\cinema_v2.mdb" Public pathimagens As String = Application.StartupPath & "\imagens\" #End If... 26 / 31

No exemplo, em debug são usados caminhos absolutos para as pastas do projecto deste modo, apenas funcionam num máquina que tenha as mesmas pastas / ficheiros e na mesma localização. Caso não seja debug (p.ex. numa publicação) os caminhos são dependentes do local onde se instalou a aplicação, sendo acedido através de Application.StartupPath devolve a pasta a partir da qual a aplicação iniciou (e foi instalada). É necessário garantir que todos os ficheiros fiquem então na pasta onde foi instalada a aplicação. Fazer o publish Antes de fazer o publish, são necessárias algumas configurações. Indo ao menu Project - <nome_do_projecto> Properties surge a janela. As opções de menu Application e Publish são tipicamente as que carecem de alguma atenção e configuração. 27 / 31

Em Application pode-se configurar: Assembly name: é o nome da aplicação, que surge no menu do Windows; Icon: é o ícone, que surge no menu do Windows; Startup form: o primeiro form a executar, caso a aplicação tenha mais do que um form; Assembly Information : informação que surge quando se verifica as propriedades do ficheiro; Splash screen: caso se pretenda ter uma janela de apresentação enquanto a aplicação inicia. Em Publish pode-se configurar: Publish Folder Location: destino onde vão ser criados os ficheiros de instalação; Application Files : onde se define que ficheiros são incluídos na instalação e como; Prerequisites : onde se define os componentes adicionais necessário a incluir e como; Publish Version: a numeração da versão, que pode ou não ser automática; Publish Now: botão para publicar criar ficheiros de instalação. 28 / 31

No Application Files, surgem os ficheiros da aplicação, incluindo as pastas e ficheiros incluídos no projecto. Por omissão, o VB.NET detecta (automaticamente) que há uma base de dados coluna Publish Status, com o valor Data File (Auto). Para garantir que todos os ficheiros ficam na mesma pasta (para serem depois acedidos pelo mesmo método Application.StartupPath, deve-se alterar para Include (Auto). 29 / 31

No Prerequisites, surge a possibilidade de incluir, no mesmo processo de instalação, alguns componentes, que podem ser necessário à execução da aplicação p.ex. a.net Framework. É possível identificar se os componentes são instalados a partir da Web (tornando a instalação mais pequena, mas requerendo acesso à Web), ou a partir da mesma pasta onde está a aplicação a instalar (tornando o pacote de instalação mais pesado, mas podendo ser instalado offline). Instalação Os ficheiros de instalação gerados, são entre outros, constituído por um ficheiro setup.exe (o que deve ser executado), e uma pasta com as várias versões que vão sendo publicadas. A versão a instalar é mais recente. Após a instalação, a aplicação fica disponível. 30 / 31

No disco, a aplicação fica instalada numa localização algo difícil de encontrar. No Windows XP: C:\Documents and Settings\Benjamim\Definições locais\apps\2.0\5zjgwb74.81g\ AJ7CX2N5.J24\pos-..tion_8ddb3fdb2c83981c_0001.0000_75271df155732cf3 No Windows 7: C:\Users\Benjamim\AppData\Local\Apps\2.0\R5KRJ54T.R7E\ TXM136CC.KC4\pos-..tion_8ddb3fdb2c83981c_0001.0000_648a89bcda2adeb5 Para que a mesma aplicação funcione no Windows 7, esta deve ser compilada no Windows 7 o VB.NET 2008 Express funciona sem qualquer problema. 31 / 31