apostila .net c# & vb

Upload: lucas-linhares

Post on 09-Jul-2015

2.297 views

Category:

Documents


3 download

TRANSCRIPT

Desenvolvimento em .NetC# e Visual Basic .NetApostila voltada para estudantes da rea de desenvolvimento, abordando a tecnologia .Net e seus vrios recursos para desenvolvimento Desktop.

Microsoft Innovation Center

Microsoft Innovation Center 2 Desenvolvimento em .Net

SumrioIntroduo ..........................................................................................................................4 .Net Framework......................................................................................................................... 4 Microsoft Visual Studio ............................................................................................................. 6 Principais linguagens da plataforma .Net ................................................................................. 6 Conhecendo a rea de trabalho do Microsoft Visual Studio..................................................... 6 Criando novas solues e aplicaes ........................................................................................ 8 Viso geral das janelas de auxlio .............................................................................................. 9 Viso geral sobre os captulos ................................................................................................. 12 Captulo I Variveis, Operadores e Estruturas de Deciso ................................................. 13 Variveis .................................................................................................................................. 13 Laboratrio 1 - Variveis ......................................................................................................... 15 Operadores.............................................................................................................................. 18 Laboratrio 2 Operadores .................................................................................................... 20 Estruturas de Deciso.............................................................................................................. 23 Laboratrio 3 Estrutura de Deciso...................................................................................... 26 Laboratrios extras ................................................................................................................. 31 Captulo II Estruturas de repetio................................................................................... 32 Estrutura Repita ...................................................................................................................... 32 Laboratrio 1 Repita............................................................................................................. 34 Estrutura Para ......................................................................................................................... 37 Laboratrio 2 Para................................................................................................................ 38 Estrutura Enquanto ................................................................................................................. 41 Laboratrio 3 Enquanto ....................................................................................................... 42 Laboratrios extras ................................................................................................................. 45 Captulo III Vetores ......................................................................................................... 46 Caractersticas dos vetores ..................................................................................................... 46 Vetores unidimensionais ......................................................................................................... 47 Vetores multidimensionais ..................................................................................................... 49 Aplicaes especficas para vetores ........................................................................................ 51 Laboratrio 1 Vetores unidimensionais e barras de progresso ........................................... 53 Laboratrio 2 Vetores multidimensionais ............................................................................ 58 Laboratrios extras ................................................................................................................. 67

Microsoft Innovation Center 3 Desenvolvimento em .Net Captulo IV Tratamento de Excees e Mtodos............................................................... 68 Tratamento de Excees ......................................................................................................... 68 Try...Catch ............................................................................................................................... 69 Finally ...................................................................................................................................... 70 Exemplo: Gerando um erro em tempo de execuo .............................................................. 71 Mtodos .................................................................................................................................. 73 Laboratrio 1 Mtodos ........................................................................................................ 76 Foreach.................................................................................................................................... 78 Laboratrio 2 Foreach .......................................................................................................... 79 Laboratrios Extras ................................................................................................................. 81 Captulo V Formulrios .................................................................................................... 82 Formulrios ............................................................................................................................. 83 Formulrios MDI...................................................................................................................... 84 Instanciao de formulrios .................................................................................................... 85 Menus...................................................................................................................................... 85 Laboratrio 1 Formulrios e menus ..................................................................................... 88 Controles ................................................................................................................................. 99 Laboratrio 2 Formulrios e controles ............................................................................... 102 Laboratrios extras ............................................................................................................... 107 Captulo VI Acesso ao banco de dados ........................................................................... 108 Viso geral do ADO .Net ........................................................................................................ 108 Viso geral dos .Net Framework Data Providers................................................................... 108 Arquitetura do ADO .Net ....................................................................................................... 109 Laboratrio 1 Primeira aplicao de acesso ao banco de dados ....................................... 111 Laboratrio 2 Trabalhando com uma base de dados por meio de cdigo ........................ 125 Laboratrios extras ............................................................................................................... 139 Captulo VII Relatrios .................................................................................................. 140 Criao de relatrios ............................................................................................................. 140 Microsoft Report Viewer ....................................................................................................... 141 Crystal Reports ...................................................................................................................... 141 Laboratrio 1 Relatrio simples com Microsoft Report Viewer ......................................... 142 Laboratrio 2 Relatrio com parmetros e Crystal Reports .............................................. 152 Laboratrio 3 Relatrio com juno e Crystal Reports ...................................................... 161 Laboratrios extras ............................................................................................................... 166

Microsoft Innovation Center 4 Desenvolvimento em .Net

Introduo

Tpicos abordados: Viso geral sobre funcionamento do .Net Framework; Conhecendo o Visual Studio e suas principais linguagens; A rea de trabalho do Visual Studio; Principais janelas de trabalho; Viso geral sobre os prximos captulos.

Essa apostila desenvolvida pelos membros e colaboradores do Centro de Inovao Microsoft tem como objetivo ajudar no desenvolvimento de novos profissionais da rea de desenvolvimento. Focando as duas principais linguagens do .Net Framework,e fazendo o uso de uma explicao detalhada e de fcil entendimento, voltada principalmente para iniciantes no campo da informtica. Voc ir encontrar laboratrios para o tema abordado em cada captulo, como tambm atividades extras para que tenha chance de desenvolver sua lgica na programao. Mesmo sendo um contedo voltado principalmente para iniciantes, as tcnicas abordadas em cada tpico so direcionadas para construo de aplicaes que mesmo simples, viso o uso de ferramentas necessrias para desenvolver solues competitivas no mercado.

.Net FrameworkO .Net Framework a plataforma de desenvolvimento fornecida pela Microsoft para que desenvolvedores criem desde solues acadmicas at profissionais, com qualidade e rapidez em sua construo. Esse modelo para programao auxilia na criao de aplicativos para clientes, servidores, dispositivos mveis ou incorporados ao Windows. Veja abaixo alguns fatores que o .Net Framework possui e que so de grande relevncia para os desenvolvedores. I. II. III. IV. V. Conjunto rico de bibliotecas, para diversos fins, facilitando e agilizando a criao de solues; Facilidade na instalao e na distribuio de aplicaes; Alta escalabilidade para ambientes de misso crtica; Interoperabilidade entre plataformas e componentes desenvolvidos em outras linguagens .Net; Suporte para orientao a objetos.

Microsoft Innovation Center 5 Desenvolvimento em .Net Uma das grandes vantagens que temos no .Net Framework est relacionada diretamente ao seu funcionamento. Veja a seguir seu funcionamento e como isso permite e favorece o trabalho em equipe por diferentes programa programadores. A plataforma .Net executada sobre uma CLR (Common Language Runtime Common Ambiente de Execuo Independente de Linguagem) interagindo com uma c coleo de bibliotecas. Esta CLR capaz de executar, atualmente, mais de vinte diferentes linguagens de programao (inclusive linguagens no Microsoft, como Cobol, Pascal - Delphi, etc.), interagindo entre si como se fossem uma nica linguagem. O modelo mostrado na Figura 1 representa de maneira simples o funcionamento do .Net Framework.

Figura 1 Modelo de funcionamento do Framework .Net.

Perceba que na parte superior do modelo temos as linguagens de programao que utilizamos para nossas solues. Podemos dizer que a plataforma compila o cdigo do desenvolvedor em uma ou mais linguagens para um cdigo intermedirio, o qual o responsvel por juntar linguagens diferentes em uma mesma soluo. A prxima etapa onde encontramos a CLR trabalhando. Ao receber o cdigo intermedirio, ela executa sobre ele uma nova compilao. Esse resultado se torna a soluo esperada para o usurio.

Microsoft Innovation Center 6 Desenvolvimento em .Net

Microsoft Visual StudioO Microsoft Visual Studio um ambiente de desenvolvimento integrado (IDE Integrated Development Environment) para a construo de aplicaes utilizando as linguagens de programao Visual Basic .Net, Visual C#, Visual C++, Visual J#. No ambiente do Visual Studio possvel criar suas aplicaes atravs de um simples arrastar de componentes de forma visual, bem como desenvolver todo o procedimento atravs de linhas de cdigo. Alm de proporcionar experincias ao usurio com a mais alta qualidade e riqueza, aplicativos mais seguros, gerenciveis e confiveis. Atualmente o Visual Studio encontra-se na verso 2008, disponibilizando no mercado trs opes diferentes para cada tipo especifico de usurio. Elas so: Visual Studio Professional, Visual Studio Team System e Visual Studio Express Editions.

Principais linguagens da plataforma .NetA linguagem C# trata-se de uma das principais linguagens que caracterizam a plataforma de desenvolvimento .Net. A linguagem orientada a objetos e possui fortes caractersticas da linguagem C++. O responsvel pela coordenao do desenvolvimento da linguagem foi Anders Hejlsberg. Outra grande linguagem a Visual Basic .Net, que foi introduzida inicialmente atravs do ambiente de desenvolvimento Visual Studio 2002, e pode ser considerada uma evoluo da linguagem Visual Basic 6 para tornar-se compatvel com o Microsoft .Net Framework. Durante o processo de reestruturao da linguagem vrias mudanas foram incorporadas para suportar todas as funcionalidades do Microsoft .Net Framework e, desde ento a linguagem passou a basear-se no paradigma da orientao a objetos. As duas linguagens possuem suas prprias caractersticas de sintaxe, contudo, possvel perceber semelhanas em seus cdigos, isso devido ao uso da mesma plataforma. Esse material visa ao leitor possibilidade de estudar as duas ou mesmo uma a sua preferncia. Todos os laboratrios e exemplos so comentados e exibidos nas duas linguagens, o que at permite ao leitor fazer comparaes entre ambas.

Conhecendo a rea de trabalho do Microsoft Visual StudioVamos conhecer agora a rea de trabalho que a ferramenta de desenvolvimento oferece. Certifique-se de possuir instalada em seu computador uma das verses do Visual Studio. Todo o contedo abordado durante os captulos no far uso de nada alm do que a verso Express Editions pode oferecer. Caso deseje, visite o link abaixo para fazer a aquisio desta verso que distribuda gratuitamente. http://www.microsoft.com/Express/

Microsoft Innovation Center 7 Desenvolvimento em .Net Primeiramente vamos visualizar nossa janela principal que apresentada assim que o Visual Studio aberto, como mostra a Figura 2.

1

3 2 4 2

2

Figura 2 Apresentao inicial do Visual Studio.

Vamos agora analisar cada parte dessa apresentao inicial: 1. Aqui encontramos o menu superior. A partir dele podemos chegar a varias opes, como criar novos projetos e arquivos, configurar opes da ferramenta, modificar a exibio das janelas que auxiliam, entre muitas outras coisas. 2. Todas as partes marcadas com esse nmero representam as nossas janelas de auxilio. Logo mais veremos o que cada uma oferece para ajudar os desenvolvedores. Outro detalhe que elas podem ter suas posies alteradas, o que deixa possvel a opo de cada programar personalizar seu ambiente de trabalho. 3. Inicialmente, essa rea notifica as novidades e lanamentos que a Microsoft lana ao processo de desenvolvimento e suas aplicaes. Para quem possui uma conexo sempre acessvel com a internet, essa janela pode fornecer muitas informaes. Caso queria, pode ser desativada tambm para que no aparea mais quando o Visual Studio for inicializado. 4. Nessa rea voc pode encontrar os seus projetos mais recentes. Acessando-os de uma forma bem rpida.

Microsoft Innovation Center 8 Desenvolvimento em .Net

Criando novas solues e aplicaesO Visual Studio editor padro para desenvolvimento utilizando a plataforma criada pela Microsoft. Com ele podemos criar a soluo ideal para cada problema. Vamos conhecer agora os principais tipos de projetos que podemos criar e tambm como realizar isso. Depois de abrir seu Visual Studio, navegue para o menu superior. Entre as varias opes que temos escolha File. Nesse item temos as principais opes para controle de projetos, como criar novos, abrir, salvar, etc. Escolha a opo New, aqui temos as opes de criar um projeto novo, criar apenas um arquivo separado de algum projeto ou mesmo um web site. Acesse o item Project, como mostra a Figura 3.

Figura 3 Acessando o menu superior para criar um novo projeto.

Feito isso, uma nova janela ir aparecer para que sejam informados alguns dados para criao do projeto. Veja a Figura 4. 3

4

5

1

2

Figura 4 Janela de criao de novos projetos.

Microsoft Innovation Center 9 Desenvolvimento em .Net 1. No campo Name indicamos qual ser o nome do nosso projeto. Por padro o Visual Studio cria a soluo com o mesmo nome tambm. 2. Location local a soluo e todos os seus componentes sero salvos. Voc pode optar por salvar em um local especifico em vez da pasta que o Visual Studio reserva. 3. Nessa seleo de itens escolhemos qual verso do .Net Framework utilizaremos. recomendado deixar sempre na verso mais recente (atualmente 3.5), j que cada atualizao corrige e aprimora a plataforma de desenvolvimento. 4. Nessa parte, chamada Project type, fazemos a escolha do tipo de projeto que ser criado, se vai ser um projeto para desktop, uma aplicao web, um sistema para dispositivo mvel, etc. Se seu Visual Studio for a verso Professional ou Team System, voc ver que nessa rea temos mais de uma linguagem diferente para escolher. Os principais tipos de projetos, como citados anteriormente, fazem parte de todas as linguagens da Microsoft, porm alguns projetos mais especficos, como desenvolvimentos para jogos em XNA, suportado apenas para linguagem C#. 5. Depois que o tipo de projeto foi escolhido precisamos definir qual ser seu template, ou seja, mesmo que o tipo de projeto seja aplicao para desktop (Windows Forms Application), ainda precisamos escolher quais elementos especficos vamos trabalhar dentro dessa rea. Pode ser um projeto completo, um projeto que suporte apenas classes (Class Library), entre outros.

Viso geral das janelas de auxlioDepois que criamos uma nova soluo ou abrimos alguma pronta, as janelas de auxlio so preenchidas conforme o arquivo que estamos trabalhando. Vamos analisar cada uma das principais janelas. Solution Explorer:

Figura 5 Janela Solution Explorer.

A Figura 5 representa a rea que fornecida para controle da nossa soluo. Quando nos referimos a uma soluo, estamos nos referindo resoluo da tarefa proposta, ou seja, conjunto de elementos que interligados formam a soluo para o problema, por isso uma soluo pode ter mais de um projeto e, dependendo da situao, necessrio trabalhar com vrios projetos em uma mesma soluo. Por exemplo, combinando um projeto Class Library com um projeto Windows Forms Application.

Microsoft Innovation Center 10 Desenvolvimento em .Net Quando criamos um novo projeto, que no seja em branco, ele construdo com vrios arquivos padro. Por exemplo, o arquivo Form1.cs, que um formulrio em branco, ou o arquivo Program.cs, que contm as principais informaes sobre sua aplicao.

Alterando formulrios:

Figura 6 rea para alterao de formulrios.

Formulrios so as janelas que nossos programas e aplicaes vo possuir, como mostra a Figura 6. Dentro delas podemos inserir varias coisas, como caixas de textos ou mesmo imagens (conhecidos como controles). Podemos editar os formulrios por meio de cdigo, cada formulrio tem seu respectivo arquivo em cdigo, o qual permite a implementao de regras de negcios, ou mesmo aes que devem ser executados caso algum boto seja pressionado.

Toolbox:

Figura 7 Controles na janela Toolbox.

Como citado anteriormente, os formulrios so preenchidos por componentes para que seja possvel a construo de uma interface grfica com os usurios. Esses componentes so chamados em geral por controles. Quando estamos editando visualmente nosso formulrio, podemos adicionar novos controles a ele de duas formas bem simples: com um clique duplo sobre o controle desejado, ou mesmo no simples arrastar e soltar.

Microsoft Innovation Center 11 Desenvolvimento em .Net Properties:

Figura 8 Janela para alterar as propriedades de um controle.

Cada controle possui suas propriedades, todos, desde um boto at um formulrio. Essas propriedades so as configuraes que cada controle tem, por exemplo, tamanho, cor e tamanho da fonte, entre outros. Existem propriedades que so comuns aos controles e outras que so especificas para cada um. Temos duas maneiras para fazer essas alteraes, via cdigo, ou mesmo pelo modo visual, selecionando um controle e navegando at a janela Properties, assim como mostra a Figura 8.

Server Explorer:

Figura 9 Janela Server Explorer.

Essa janela de auxlio responsvel pelo gerenciamento das conexes que temos com o Visual Studio e bases de dados. Assim como mostra a Figura 9, podemos configurar e acessar tanto servidores como bancos de dados diretamente. Alm da opo de manuteno e gerenciamento, podemos criar novas bases de dados diretamente dessa janela.

Microsoft Innovation Center 12 Desenvolvimento em .Net

Viso geral sobre os captulosCaptulo I - Variveis, operadores e estruturas de deciso: Esse primeiro captulo aborda a introduo ao desenvolvimento de aplicaes, focando nos conceitos bsicos e necessrios para construo de qualquer aplicao. Captulo II - Estruturas de repetio: Aqui so desenvolvidas estruturas que auxiliaram no desenvolvimento de regras de negocio mais aprimoradas, as quais so essenciais para a lgica de seu programa. Captulo III - Vetores: Todo desenvolvedor sempre chega ao ponto de trabalhar com uma grande quantidade de dados, uma das maneiras mais utilizadas para criao e manuteno desse tipo de problema com a utilizao de vetores. Onde voc aprender a trabalhar e aplicar os conceitos de vetores unidimensionais e multidimensionais. Captulo IV - Tratamento de excees e mtodos: Como nenhuma aplicao pode garantir que nunca ocorrer um erro devemos aprender a utilizar os tratamentos dos mesmos, para que um erro no seja fatal e atrapalhe a execuo do programa. abordado tambm a utilizao de mtodos (funes), que ajudam a garantir no programa uma reutilizao maior como tambm um aprimoramento na organizao do projeto e facilidade para desenvolver aplicaes com estruturas mais complexas. Captulo V - Formulrios: A integrao de programa com usurio essencial para sucesso da soluo. Para isso devemos saber como utilizar nossos formulrios e seus controles das melhores maneiras possveis. Captulo VI - Acesso ao banco de dados: Aplicaes que envolvem armazenamento de dados, precisam acessar bases de dados, tanto para receber como inserir informaes. Neste captulo abordado as maneiras que a plataforma .Net disponibiliza para que isso seja feito, tanto visualmente ou por cdigo. Captulo VII - Relatrios: Uma das funes mais essenciais que as aplicaes devem possuir atualmente gerar relatrios. Seja qual for o tipo e tamanho de empresa, tomas de decises, para que ocorram com sucesso devem possuir boas analises, utilizando relatrios possvel fornecer algumas dessas analisem. Veja como construir relatrios de maneira bem simples e eficiente para seus programas.

Microsoft Innovation Center 13 Desenvolvimento em .Net

Captulo I Variveis, Operadores e Estruturas de DecisoTpicos abordados: Variveis; Laboratrio 1; Operadores; Laboratrio 2; Estruturas de Deciso; Laboratrio 3;

Neste captulo vamos estudar os conceitos sobre variveis, aplicaes de operadores e a utilizao de Estruturas de Deciso para auxiliar o desenvolvimento de um aplicativo.

Variveis

Uma varivel um local de armazenamento temporrio para dados em seu programa. Voc pode utilizar uma ou muitas variveis no cdigo, e elas podem conter palavras, nmeros, datas, propriedades ou outros valores. Utilizando variveis, voc pode atribuir um nome curto e fcil de lembrar a cada parte dos dados com o qual deseja trabalhar. As variveis podem armazenar informaes inseridas pelo usurio em tempo de execuo, o resultado de um clculo especfico ou uma parte dos dados que voc quer exibir em um formulrio. Em resumo, as variveis so contineres teis que voc pode utilizar para armazenar e monitorar quase todo tipo de informao. As variveis tm mbitos diferentes, ou seja, lugares onde esto disponveis. Normalmente elas so divididas entre variveis locais e globais. As variveis globais so as que esto declaradas no mbito mais amplo possvel. Essas variveis so acessveis de qualquer lugar do aplicativo. J as variveis locais, so usadas em lugares mais dimensionados, como por exemplo, um mtodo. Quando se declara variveis locais, somente podemos acess-las dentro do lugar aonde tenha sido declarada, ou seja, se havamos declarado em um mtodo somente podemos acess-la quando estivermos nesse mtodo. A declarao de variveis no C# e no Visual Basic .Net diferem bastante uma da outra. Em C# escrevemos o tipo da varivel e seu nome, j no Visual Basic .Net utilizamos a palavra-chave Dim, ento o nome da varivel e o seu tipo. Vejamos no exemplo a sintaxe nas duas linguagens, onde vamos declarar uma varivel chamada i do tipo String:

Microsoft Innovation Center 14 Desenvolvimento em .Net

- Sintaxe C#: String i; - Sintaxe Visual Basic .Net: Dim i As String

Tipos de variveis:

byte sbyte int/Integer uint long ulong short ushort decimal double

Inteiro de 8 bits sem sinal Inteiro Inteiro com sinal de 8 bits Inteiro Inteiro de 32 bits com sinal Inteiro Inteiro de 32 bits sem sinal Inteiro Inteiro com sinal de 64 bits Inteiro Inteiro sem sinal de 64 bits Inteiro Inteiro com sinal de 16 bits Inteiro Inteiro sem sinal de 16 bits Inteiro Ponto flutuante decimal. Este tipo tem uma preciso de 28 casas decimais. Ponto Ponto flutuante binrio. Este tipo tem uma preciso de 15 casas decimais. Ponto

Ponto float/single Ponto flutuante binrio. Este tipo tem uma preciso de 7 casas decimais. Tipo bool/Boolean Tipo de dados booleano. Pode ser apenas true ou false.

char string

Um nico caractere unicode de 16 bits. Um Unicode com at 1 gigabyte de caracteres. Unicode

Esses so os tipos mais comuns de variveis no Visual Basic .Net e no C#, algumas s se diferem na sintaxe, mas suas especificaes so as mesmas.

Microsoft Innovation Center 15 Desenvolvimento em .Net

Laboratrio 1 - Variveis

Neste laboratrio iremos aprender a declarar variveis e conhecer o comando Console.WriteLine() para mostrar uma mensagem na tela. - Exerccio: 1. Primeiramente abra o Visual Studio 2008, ento crie um novo projeto em File\New Project... 2. Aparecer uma tela, nela voc poder escolher a linguagem e a verso do .Net Framework. Crie um projeto Console Application chamado Variaveis como mostra a Figura 1.

Figura 1 Criando um novo projeto.

3. Agora dever aparecer a tela principal do projeto, com o arquivo Program.cs aberto, como mostra a Figura 2 em C# ou Module1.vb como mostra a Figura 3 em Visual Basic .Net.

Figura 2 Tela principal do projeto em C#.

Microsoft Innovation Center 16 Desenvolvimento em .Net

Figura 3 Tela principal do projeto em Visual Basic .Net.

4. Agora dentro do static void Main(string[] args)em C# ou no Sub Main() em Visual Basic .Net, que so os mtodo principais do projeto, iremos declarar a varivel do tipo String chamada nome e atribuir a ela a String Jos, como na Figura 4 e 5.

using using using using

System; System.Collections.Generic; System.Linq; System.Text;

namespace Variaveis { class Program { static void Main(string[] args) { string nome; nome = "Jos"; } } } Figura 4 Declarao e atribuio a varivel em C#.

Module Module1 Sub Main() Dim nome As String nome = "Jos"

End Sub End ModuleFigura 5 Declarao e atribuio a varivel em Visual Basic .Net

Microsoft Innovation Center 17 Desenvolvimento em .Net 5. Ento agora, utilizando o comando Console.WriteLine(), que um mtodo que faz parte do Framework .Net, que utilizado para mostrar valores em uma tela de prompt. Iremos mandar como parmetro para o mtodo Console.WriteLine() a nossa varivel nome para que seu valor seja mostrado na tela, como ilustra a Figura 6 em C# e a 7 em Visual Basic .Net.

using using using using

System; System.Collections.Generic; System.Linq; System.Text;

namespace Variaveis { class Program { static void Main(string[] args) { string nome; nome = "Jos"; Console.WriteLine(nome); } } } Figura 6 Parmetro enviado ao mtodo Console.WriteLine() em C#.

Module Module1 Sub Main() Dim nome As String nome = "Jos" Console.WriteLine(nome)

End Sub End Module Figura 7 Parmetro enviado ao mtodo Console WriteLine() em Visual Basic .Net.

6. Salve seu projeto, execute-o apertando o atalho Ctrl + F5 e veja o resultado.

Microsoft Innovation Center 18 Desenvolvimento em .Net

Operadores

Operadores aritmticos: So os operadores matemticos clssicos, que permitem somar, subtrair, multiplicar e dividir nmeros ou variveis que contenham nmeros.

+/& / * = % ^Operadores lgicos:

Soma de dois nmeros, ou concatenao

Subtrao de dois nmeros

Diviso de dois nmeros

Multiplicao de dois nmeros

Nesse caso, atribuio de valor

Resto da diviso inteira de um nmero por outro Exponenciao

So aqueles que manipulam os valores lgicos True (verdadeiro) e False (falso). Sua sintaxe muda de linguagem para linguagem, mas suas funes continuam as mesmas.E lgico: retorna verdadeiro se todos os valores da expresso forem verdadeiros e falso em qualquer outro caso

&& / AndAlso

|| / OrElse

Ou lgico: retorna falso somente se todos os valores da expresso forem falsos e verdadeiro em qualquer outro caso

! / Not

No lgico: "nega", ou melhor, inverte o valor lgico da expresso

Microsoft Innovation Center 19 Desenvolvimento em .Net Operadores relacionais: Servem para comparao de dados. Dependendo da linguagem a sintaxe diferente, mas as funes se mantm.

< >= == / = != /

Menor que Menor ou igual a Maior que Maior ou igual a Nesse caso, igual a Diferente de

Microsoft Innovation Center 20 Desenvolvimento em .Net

Laboratrio 2 Operadores

Neste laboratrio veremos como utilizar alguns operadores e vamos conhecer o comando Console.ReadLine().

- Exerccio: 1. Primeiramente abra o Visual Studio 2008, ento crie um novo projeto em File\New Project... 2. Aparecer uma tela, nela voc poder escolher a linguagem e a verso do .Net Framework. Crie um projeto Console Application chamado Operadores como mostra a Figura 7.

Figura 8 Criando um novo projeto.

3. Agora dever aparecer a tela principal do projeto, com o arquivo Program.cs aberto em C# e o Module1.vb em Visual Basic .Net, como mostra a Figura 8 e 9.

Figura 9 Tela principal do projeto em C#.

Microsoft Innovation Center 21 Desenvolvimento em .Net

Figura 10 Tela principal do projeto em Visual Basic .Net.

4. Agora no mtodo Main, vamos declarar duas variveis do tipo decimal, chamadas num1 e num2. E utilizando o comando Console.WriteLine() mostraremos a mensagem Digite dois nmeros: na tela, como na Figura 10 em C# e a 11 em Visual Basic .Net.using using using using System; System.Collections.Generic; System.Linq; System.Text;

namespace Operadores { class Program { static void Main(string[] args) { decimal num1; decimal num2; Console.WriteLine("Digite dois numeros: "); Figura 11 Declarao das variveis em C#.

Module Module1 Sub Main() Dim num1 As Decimal Dim num2 As Decimal Console.WriteLine("Digite dois nmeros: ") Figura 12 Declarao das variveis em Visual Basic .Net.

Microsoft Innovation Center 22 Desenvolvimento em .Net 5. Vamos utilizar o comando Console.ReadLine() para capturar os dois nmeros que pedimos para o usurio digitar. Em C#, este comando, por padro, s captura valores String, para armazenar o valor digitado nas nossas variveis teremos que converter o que foi digitado para o tipo decimal, usando o comando Convert.ToDecimal(). A sintaxe dever ficar semelhante Figura 12 e 13.

num1 = Convert.ToDecimal(Console.ReadLine()); num2 = Convert.ToDecimal(Console.ReadLine()); Figura 13 Captura e converso dos nmeros digitados em C#. num1 = Console.ReadLine() num2 = Console.ReadLine() Figura 14 Captura dos nmeros digitados em Visual Basic .Net.

6. Agora utilizando o comando Console.WriteLine() iremos mostrar na tela todas as operaes aritmticas possveis com os nmeros que foram digitados. Alm de utilizar os operadores aritmticos, tambm veremos o uso do + em C# e & em Visual Basic .Net, para realizar concatenaes. O cdigo dever ficar semelhante Figura 14 e 15.

Console.WriteLine("Soma: "+ num1 +" + "+ num2 +" = "+ (num1 + num2)); Console.WriteLine("Subtrao: " + num1 + " - " + num2 + " = " + (num1 - num2)); Console.WriteLine("Diviso: " + num1 + " / " + num2 + " = " + (num1 / num2)); Console.WriteLine("Multiplicao: " + num1 + " * " + num2 + " = " + (num1 * num2)); Figura 15 Apresentao dos resultados em C#. Console.WriteLine("Soma: " & num1 & " num2)) Console.WriteLine("Subtrao: " & (num1 - num2)) Console.WriteLine("Diviso: " & (num1 / num2)) Console.WriteLine("Multiplicao: " & (num1 * num2)) + " & num2 & " = " & (num1 + " & num1 & " - " & num2 & " = & num1 & " / " & num2 & " = " num1 & " * " & num2 & " = " &

Figura 16 Apresentao dos resultados em Visual Basic .Net.

Entre as aspas, colocamos palavras e caracteres que desejamos mostrar como texto e para fazer as variveis que digitamos aparecem em meio ao texto utilizamos o + e o nome da varivel. E por fim colocamos a operao que ser executada entre as duas variveis, desse modo o resultado j ser mostrado, sem a necessidade de que esse resultado seja armazenado em uma varivel.

Microsoft Innovation Center 23 Desenvolvimento em .Net

Estruturas de Deciso

As Estruturas de Deciso utilizam expresses condicionais para controlar quais instrues devem ser executadas e em qual ordem. Existem duas estruturas que cuidam para realizar essa funo, a estrutura Se ou a Escolha. Primeiramente vamos entender o que uma expresso condicional. Esta uma expresso que sempre retorna um valor booleano, ou seja, verdadeiro ou falso, utilizando os operadores relacionais.Estrutura Se:

No caso da estrutura Se temos a seguinte sintaxe nas linguagens .Net: - Sintaxe em C#: If ( expresso condicional ) { bloco de cdigo 1 } else if ( expresso condicional ) { bloco de cdigo 2 } else { bloco de cdigo 3 }

- Sintaxe em Visual Basic .Net:If expresso condicional bloco de cdigo 1 ElseIf expresso condicional bloco de cdigo 2 Else bloco de cdigo 3 End If

Microsoft Innovation Center 24 Desenvolvimento em .Net

Assim, se a primeira expresso condicional for verdadeira, o bloco de cdigo 1 ser executado e os demais no sero utilizados. Caso a primeira expresso seja falsa, a segunda expresso ser testada, se for verdadeira o bloco de cdigo 2 ser executado. Ento se a primeira e a segunda expresso forem falsas, automaticamente, o bloco de cdigo 3 ser executado, porque ele no possui a palavra-chave if, apenas else. Ele como um plano de emergncia, caso todos falhem, ele entra em ao. Lembrado que a estrutura Se no precisa obrigatoriamente conter um else no fim e, o else if pode ser utilizado quantas vezes forem necessrias.Estrutura Escolha: Voc tambm pode controlar a execuo de instrues em programas utilizando a estrutura de deciso Escolha. Ela semelhante estrutura Se, mas, mais eficiente quando o desvio depende de uma varivel-chave ou, caso de teste. Voc tambm pode utilizla para deixar o cdigo mais legvel. - Sintaxe em C#: switch ( varivel-chave ) { case valor1: bloco de cdigo 1 break; case valor2: bloco de cdigo 2 break; default: bloco de cdigo 3 break; }

A estrutura Escolha v o contedo da varivel-chave, ento dependendo do seu valor executa um bloco de cdigo. Caso nenhum dos valores seja o mesmo, o default acionado e o bloco de cdigo 3 executado.

Microsoft Innovation Center 25 Desenvolvimento em .Net - Sintaxe em Visual Basic .Net: Select Case varivel Case valor1 bloco de cdigo 1 Case valor2 bloco de cdigo 2 Case Else bloco de cdigo 3 End Select

Assim como a estrutura Escolha em C#, ela v o contedo da varivel-chave, ento dependendo do seu valor executa um bloco de cdigo. Caso nenhum dos valores seja o mesmo, o Case Else acionado e o bloco de cdigo 3 executado.

Microsoft Innovation Center 26 Desenvolvimento em .Net

Laboratrio 3 Estrutura de Deciso

Neste laboratrio ser realizado a criao de um menu bsico e a utilizao das estruturas Se e Escolha para gerenciar logins de usurios diferentes.

- Exerccio:1. Primeiramente abra o Visual Studio 2008, ento crie um novo projeto em File\New Project... 2. Aparecer uma tela, nela voc poder escolher a linguagem e a verso do .Net Framework. Crie um projeto Console Application chamado EstruturasDecisao como mostra a Figura 15.

Figura 17 Criando um novo projeto.

3. Agora dever aparecer a tela principal do projeto, com o arquivo Program.cs em C# ou Module1.vb em Visual Basic .Net aberto, como mostra a Figura 16 e 17.

Figura 18 Tela principal do projeto em C#.

Microsoft Innovation Center 27 Desenvolvimento em .Net

Figura 19 Tela principal do projeto em Visual Basic .Net.

4. Primeiramente vamos declarar as variveis que sero utilizadas. Usaremos uma varivel do tipo Int em C# e Integer em Visual Basic . Net, que ser nossa varivelchave. Ela ir se chamar resp. E vamos declarar duas Strings chamadas login e senha, que armazenaro respectivamente o login e a senha que o usurio digitar. Vamos declarar tambm quatro variveis String, chamadas admin e senhaAdmin, usurio e senhaUsuario, que sero inicializadas contento o login e senha corretos do Administrador e do Usurio.

static void Main(string[] args) { int resp; string login; string senha; string admin = "Professor"; string senhaAdmin = "admin"; string usuario = "Aluno"; string senhaUsuario = "123"; Figura 20 Variveis que sero utilizadas em C#.

Module Module1 Sub Main() Dim resp As Integer Dim login As String Dim senha As String Dim admin As String = "Professor" Dim senhaAdmin As String = "admin" Dim usuario As String = "Aluno" Dim senhaUsuario As String = "123" Figura 21 Variaveis que sero utilizadas em Visual Basic .Net.

Microsoft Innovation Center 28 Desenvolvimento em .Net 5. Vamos criar um menu simples onde o usurio poder escolher logar como Administrador ou Usurio, ou se desejar, sair do aplicativo.Ento vamos capturar o que o usurio digitar e armazenar na varivel-chave.Lembrando que o comanado Console.ReadLine() em C#, s captura valores String, temos que converter o valor capturado pra Int para que seja armazenado na nossa varivel, como mostra Figura 20.Console.WriteLine("- Console.WriteLine("|1Console.WriteLine("|2Console.WriteLine("|3Console.WriteLine("- - - Logon Logon Sair - - - - - - -"); Admin |"); Usuario |"); |"); - - - - -");

resp = Convert.ToInt32(Console.ReadLine()); Figura 22 Estrutura do menu em C#. Console.WriteLine("- Console.WriteLine("|1Console.WriteLine("|2Console.WriteLine("|3Console.WriteLine("- - - Logon Logon Sair - - - - - - -") Admin |") Usuario |") |") - - - - -")

resp = Console.ReadLine() Figura 23 Estrutura do menu em Visual Basic .Net.

6. Como cada uma das opes dadas ao usurio deve realizar tarefas diferentes, iremos utilizar a estrutura de Deciso Escolha para implementar cada opo. Como a varivel resp guarda o valor da opo que o usurio escolheu, ela ser nossa varivel-chave no Escolha. Ento caso o usurio escolha a opo 1, ser pedido que ele digite o login do Administrador e a senha. Utilizando uma estrutura Se, vamos verificar se o login e a senha digitados so iguais as variveis admin e senhaAdmin. Caso sejam iguais, mostraremos a mensagem de confirmao do login, caso no sejam iguais mostramos uma mensagem de login ou senha invlida.

switch (resp) { case 1: Console.WriteLine("Digita o login de Administrador:"); login = Console.ReadLine(); Console.WriteLine("Digite a senha:"); senha = Console.ReadLine(); if ((login == admin) && (senha == senhaAdmin)) { Console.WriteLine("Login Efetuado com Sucesso!"); } else { Console.WriteLine("Login ou Senha Incorretos"); } break; Figura 24 Estrutura do caso 1 em C#.

Microsoft Innovation Center 29 Desenvolvimento em .NetSelect Case resp Case 1 Console.WriteLine("Digite o login de Administrador:") login = Console.ReadLine() Console.WriteLine("Digite a Senha:") senha = Console.ReadLine() If login = admin AndAlso senha = senhaAdmin Then Console.WriteLine("Login Efetuado com Sucesso!") Else Console.WriteLine("Login ou Senha Incorretos!") End IfFigura 25 Estrutura do caso 1 em Visual Basic .Net.

7. Caso o usurio escolha a opo 2, crie uma estrutura semelhante a que criamos anteriormente, apenas substitua a varivel admin por usurio e senhaAdmin por senhaUsuario. O cdigo dever ficar semelhante Figura 24 em C# e 25 em Visual Basic .Net.

case 2: Console.WriteLine("Digite o login de Usurio:"); login = Console.ReadLine(); Console.WriteLine("Digite a senha:"); senha = Console.ReadLine(); if ((login == usuario) && (senha == senhaUsuario)) { Console.WriteLine("Login Efetuado com Sucesso!"); } else { Console.WriteLine("Login ou Senha Incorretos"); Console.Clear(); } break;Figura 26 Estrutura do caso 2 em C#.

Case 2 Console.WriteLine("Digite o login de Usuario:") login = Console.ReadLine() Console.WriteLine("Digite a Senha:") senha = Console.ReadLine() If login = usuario AndAlso senha = senhaUsuario Then Console.WriteLine("Login Efetuado com Sucesso!") Else Console.WriteLine("Login ou Senha Incorretos!") End IfFigura 27 Estrutura do caso 2 em Visual Basic .Net.

Microsoft Innovation Center 30 Desenvolvimento em .Net 8. No caso da opo 3, como apenas para finalizar o programa, mostraremos uma mensagem dizendo que o programa ser finalizado. E tambm criaremos a opo Default, para caso o usurio no digite nenhuma das trs opes mostradas na tela, aparea mensagem de opo invalida.

case 3: Console.WriteLine("Fechando o Aplicativo!"); break; default: Console.WriteLine("Opo Invalida!"); break;Figura 28 Caso 3 e o fechamento das estruturas em C#.

Case 3 Console.WriteLine("Fechando o Aplicativo!") Case Else Console.WriteLine("Opo Invalida!") End SelectFigura 29 = Caso 3 e o fechamento das estruturas em Visual Basic .Net.

9. Agora salve o seu projeto, execute-o e veja o resultado.

Microsoft Innovation Center 31 Desenvolvimento em .Net

Laboratrios extras

1) Trabalhando com operadores. Crie uma aplicao do tipo Console Applicattion que receba do usurio o seu peso e a sua altura, e realize o calculo do IMC (ndice de Massa Corporal) do usurio. Lembrando que a formula para calcular o IMC IMC = Peso/Altura.

2) Utilizando Estruturas de Deciso. Crie uma aplicao semelhante anterior, mas agora introduza a tabela abaixo ao aplicativo: IMC < 19,99 20 24,99 25 29,99 30 35 > 35 CLASSIFICAO Magreza Normal Excesso de Peso Obesidade Grande Obesidade

Aps o clculo do IMC, utilize uma estrutura de deciso para que, dependendo do valor calculado, verifique em que classificao o usurio se encontra, e mostre a classificao na tela.

Microsoft Innovation Center 32 Desenvolvimento em .Net

Captulo II Estruturas de repetioTpicos abordados: Importncia da utilizao de estruturas de repetio; Estrutura Repita; Laboratrio 1 - Repita Estrutura Para; Laboratrio 2 - Para; Estrutura Enquanto; Laboratrio 3 Enquanto;

As estruturas de repetio ou iterao so de crucial importncia para a programao. Elas possibilitam executar um mesmo trecho de cdigo vrias vezes seguidas, enquanto um dado critrio no satisfeito. Qualquer estrutura de repetio funciona com uma varivel que chamamos de sentinela (conhecida tambm como contador). Essa varivel ir ditar quando o programa dever sair da repetio e geralmente tem trs caractersticas: I. II. III. Qual valor essa varivel ir iniciar. Como esta varivel ter seu valor alterado para que chegue ao valor final. Qual valor essa varivel deve atingir para que a repetio pare.

A varivel de controle ou sentinela sempre dever ter essas caractersticas ou poder ocorrer um erro que chamamos de loop infinito. Isso ocorre por causa do erro de lgica, no qual a varivel sentinela nunca chega ao seu resultado final.

Estrutura RepitaEsta estrutura executa um grupo de instrues at que certa condio seja verdadeira. Este tipo de loop valioso porque voc pode no saber de antemo quantas vezes dever ser repetido. Por exemplo, talvez voc queira que o usurio repita um processo de cadastramento de funcionrios at que ele responda No para a pergunta Deseja cadastrar outro funcionrio?. Nesse caso, voc pode utilizar a estrutura de repetio Repita que se repetir indefinidamente at que a string de texto No seja inserida. - Sintaxe C# Do { bloco de instrues a ser executado } While(condio);

Microsoft Innovation Center 33 Desenvolvimento em .Net Em C# utilizamos a palavra-chave Do ento entre chaves ( { } ), inserimos o trecho de cdigo ser repetido. Aps a chave ( } ) que fecha o bloco de cdigo, inserimos a palavra-chave While com a condio que desejamos satisfazer para interromper a repetio entre parnteses. A estrutura Repita em Visual Basic .Net representada nas linguagens de programao dessa maneira pelas palavras Do...While: - Sintaxe Visual Basic .Net Do bloco de instrues a ser executado Loop While condio No caso do Visual Basic .Net utilizamos a palavra chave Do, ento em seguida inserido o trecho de cdigo a ser executado repetidamente. Aps o trecho de cdigo, inserimos as palavras-chave Loop While e a condio que queremos satisfazer para que a repetio seja interrompida.

Microsoft Innovation Center 34 Desenvolvimento em .Net

Laboratrio 1 Repita

Neste Laboratrio iremos utilizar a estrutura Repita para calcular a mdia de vrios alunos. Como o numero de alunos no ser definido, utilizaremos a estrutura repita para calcular as mdias quantas vezes forem necessrias. Exerccio: 1. Para criar um novo projeto, no menu do Visual Studio selecione File\New Project... 2. Aparecer a tela abaixo, onde voc poder escolher a linguagem e verso do .NET Framework. Crie um projeto Console Application chamado LoopRepita como mostra a Figura 1.

Figura 1 Criando um novo projeto.

3. Agora vamos declarar as variveis que sero utilizadas para realizar os clculos e apresentar os resultados. Declare quatro variveis do tipo Double com os nomes: nota1, nota2, nota3 e media. E por fim declare uma varivel do tipo String chamada resp, est ser nossa varivel sentinela (ou varivel de controle). O cdigo dever ficar semelhante Figura 2 em C# ou 3 em Visual Basic .Net.

static void Main(string[] args) { double nota1; double nota2; double nota3; double media; string resp; Figura 2 Declarao das variveis em C#.

Microsoft Innovation Center 35 Desenvolvimento em .Net

Sub Main() Dim Dim Dim Dim

nota1 nota2 nota3 media

As As As As

Double Double Double Double

Dim resp As StringFigura 3 Declarao das variveis em Visual Basic .Net.

4. Criaremos agora o bloco de cdigo que ser repetido caso o usurio necessite. Com o comando Console.WriteLine() mostraremos na tela o pedido para o usurio digitar a nota (Lembrando que nmeros decimais devem ser digitados utilizando vrgula ex: 5,5). E com o comando Console.ReadLine() atribuiremos varivel o valor que o usurio digitou. Como em C# o comando Console.ReadLine() s captura string, teremos que utilizar o comando de converso Convert.ToDouble() para converter o que o usurio digitar na tela para o tipo Double. Por fim atribuiremos varivel media o valor da soma das trs notas divido por trs e mostraremos uma mensagem na tela com o valor da media. O cdigo dever ficar semelhante Figura 4 em C# ou 5 em Visual Basic .Net.

Console.WriteLine("Digite a primeira nota"); nota1 = Convert.ToDouble(Console.ReadLine()); Console.WriteLine("Digite a segunda nota"); nota2 = Convert.ToDouble(Console.ReadLine()); Console.WriteLine("Digite a terceira nota"); nota3 = Convert.ToDouble(Console.ReadLine()); media = (nota1 + nota2 + nota3) / 3; Console.WriteLine("Sua mdia : " + media); Figura 4 Visualizao e captura de texto em C#. Console.WriteLine("Digite a primeira nota") nota1 = Console.ReadLine() Console.WriteLine("Digite a segunda nota") nota2 = Console.ReadLine() Console.WriteLine("Digite a terceira nota") nota3 = Console.ReadLine() media = (nota1 + nota2 + nota3) / 3 Console.WriteLine("Sua mdia : " & media) Figura 5 Visualizao e captura de texto em Visual Basic .Net.

5. Caso o usurio queria realizar outra consulta de mdia, devemos colocar o cdigo de leitura das notas e apresentao da mdia dentro da estrutura de repetio e alimentar a varivel de controle resp, para o usurio interromper a repetio quando

Microsoft Innovation Center 36 Desenvolvimento em .Net desejar. Iremos mostrar na tela a pergunta Deseja realizar outro calculo de mdia?, e com a resposta dada pelo usurio alimentaremos a varivel resp, ento colocaremos como condio para interromper a repetio que a varivel resp seja igual string Sim. O cdigo dever estar semelhante Figura 6 em C# ou 7 em Visual Basic .Net.do { Console.WriteLine("Digite a primeira nota"); nota1 = Convert.ToDouble(Console.ReadLine()); Console.WriteLine("Digite a segunda nota"); nota2 = Convert.ToDouble(Console.ReadLine()); Console.WriteLine("Digite a terceira nota"); nota3 = Convert.ToDouble(Console.ReadLine()); media = (nota1 + nota2 + nota3) / 3; Console.WriteLine("Sua mdia : " + media); Console.WriteLine("Deseja realizar outro calculo de media?"); resp = Console.ReadLine(); }while(resp == "sim"); Figura 6 Estrutura de repetio em C#.

Do Console.WriteLine("Digite a primeira nota") nota1 = Console.ReadLine() Console.WriteLine("Digite a segunda nota") nota2 = Console.ReadLine() Console.WriteLine("Digite a terceira nota") nota3 = Console.ReadLine() media = (nota1 + nota2 + nota3) / 3 Console.WriteLine("Sua mdia : " & media) Console.WriteLine("Deseja realizar outro calculo de mdia?") resp = Console.ReadLine() Loop While resp = "sim" Figura 7 Estrutura de repetio em Visual Basic .Net

6. Agora salve o seu projeto e execute-o apertando Ctrl + F5 para realizar os testes.

Microsoft Innovation Center 37 Desenvolvimento em .Net

Estrutura ParaEsta estrutura executa um grupo especfico de instrues em uma quantidade prdeterminada de vezes. A estrutura Para testa uma condio para executar um bloco de cdigo e, at que essa condio seja verdadeira, este trecho de cdigo ser executado. Para usar esta estrutura necessrio declarar sua inicializao, a condio e o incremento. Representada na linguagem de programao pela palavra-chave For, desta maneira: - Sintaxe C#:For(varivel = valor inical;condio;incremento) { bloco de instrues a ser executado }

No caso do C#, utilizamos a palavra-chave For e atribumos varivel de controle o valor que desejamos que ela iniciasse na repetio. Ento separando por ponto e vrgula ( ; ) colocamos a condio para interromper a repetio e novamente separando com ponto e vrgula inserimos o incremento(ex: varivel++, ser sempre incrementado +1 no valor da varivel). Agora entre as chaves ( { } ) inserimos o trecho de cdigo que ser repetido. - Sintaxe Visual Basic .Net:Ex:. 1 For varivel = valor inicial To valor final bloco de instrues a ser executado Next varivel Ex:.2 For varivel = valor inicial To valor final Step incremento bloco de instrues a ser executado Next varivel

No Visual Basic .Net utilizamos a palavra-chave For e atribumos varivel de controle o valor que desejamos que ela iniciasse na repetio. Ento utilizamos a palavra-chave To e aps ela colocamos o valor que desejamos que a varivel de controle ao chegar, encerre a repetio. Inserimos o bloco de cdigo a ser repetido e por fim, utiliza-se a palavra Next e aps ela, a varivel que ser incrementada. No caso do exemplo dois colocada a palavra-chave Step, sendo esta responsvel por definir o valor que ser incrementado. Quando esta palavrachave no utilizada o valor padro do incremento igual a um (1).

Microsoft Innovation Center 38 Desenvolvimento em .Net

Laboratrio 2 Para

Neste Laboratrio iremos adicionar elementos a um ComboBox utilizando a estrutura de repetio Para. Exerccio: 1. Vamos criar um novo projeto, no menu do Visual Studio selecione File\New Project... 2. Aparecer a tela abaixo, onde voc poder escolher a linguagem e verso do .NET Framework. Crie um projeto Windows Forms Application chamado LoopFor como mostra a Figura 8.

Figura 8 Criando um novo projeto.

3. Agora utilizando a Toolbox,daremos um clique no controlador Button e vamos arrastlo ate o topo do Form que est presente na tela. Faremos o mesmo com a ComboBox e com uma Label. O Form dever ficar semelhante Figura 9.

Figura 9 Organizao do Form.

Microsoft Innovation Center 39 Desenvolvimento em .Net 4. Agora dando apenas um clique sobre o controle button1, podemos acessar suas propriedades. Ento mudaremos a propriedade Text do Button para Carregar, como mostra a Figura 10.

Figura 10 Propriedades do controlador Button.

5. Clique duas vezes sobre o boto Carregar, e ento ser aberta a tela com o cdigo do arquivo Form1.cs no mtodo button1_Click, onde iremos inserir os eventos que ocorrero aps um clique sobre o boto. Dentro deste mtodo, primeiramente vamos declarar uma varivel do tipo Int em C# ou Integer em Visual Basic .Net, chamada i. O cdigo deve estar semelhante Figura 11 em C# ou 12 em Visual Basic .Net.

using using using using using using using using

System; System.Collections.Generic; System.ComponentModel; System.Data; System.Drawing; System.Linq; System.Text; System.Windows.Forms;

namespace LoopFor { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { int i; Figura 11 Chamada do evento button1_Click em C#. Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim i As Integer Figura 12 Chamada do evento button1_click em Visual Basic .Net.

Microsoft Innovation Center 40 Desenvolvimento em .Net 6. Agora criaremos a estrutura For usando como varivel de controle a varivel que acabamos de declarar. Ento colocaremos dentro do For o comando comboxBox1.Items.Add(Linha + i) em C#, em Visual Basic .Net apenas substitumos o + por &, para adicionar a ComboBox um nmero de linhas i, conforme especificado na estrutura do nosso For (este caso iremos inserir 10 linhas). O prximo passo mudar a propriedade Text da Label para Itens Inseridos quando o For inserir as linhas ao ComboBox. O cdigo deve ficar semelhante Figura 13 em C# e 14 em Visual Basic .Net.

private void button1_Click(object sender, EventArgs e) { int i; for (i = 1; i 980,00 1.500,00 Reajuste 15% 10% 7% 5%

Em uma das Label deve aparecer a porcentagem de reajuste que ser aplicado ao salrio e na outra o valor atualizado do salrio do funcionrio.

Microsoft Innovation Center 108 Desenvolvimento em .Net

Captulo VI Acesso ao banco de dadosTpicos abordados: Mecanismos de acesso ao banco de dados; ADO .Net e seus componentes; Desenvolvendo a primeira aplicao com ADO .Net; Construir um banco de dados; Utilizando ferramentas RAD para acesso a base de dados; Introduo ao acesso por cdigo a uma base de dados; Trabalhando com pesquisas a uma base de dados por meio de cdigo.

O acesso a banco de dados parte fundamental da construo de uma aplicao comercial, pois os dados armazenados subsidiaro a extrao de informaes para a empresa atravs de relatrios gerenciais ou ferramentas de BI (Business Intelligence). Para acessar uma fonte de dados atravs de uma aplicao desenvolvida utilizando o Microsoft .Net Framework necessrio utilizar a tecnologia ADO .Net.

Viso geral do ADO .Net

O ADO.Net (um acrnimo para ActiveX Data Objects) um conjunto de classes e interfaces definidas dentro do .Net Framework destinadas manipulao de dados provenientes de uma ampla quantidade de fontes de dados, como bancos de dados relacionais (SQL Server, Access, Oracle, etc.), XML (eXtensible Markup Language), planilhas e arquivos texto.

Viso geral dos .Net Framework Data Providers

A tarefa de manipulao de dados do ADO .Net est dividida em diversos componentes que podem ser utilizados em conjunto ou separadamente para este fim. Para realizar a conexo com a base de dados o ADO .Net utiliza os data providers.

Microsoft Innovation Center 109 Desenvolvimento em .Net Um data provider utilizado para conectar a uma fonte de dados, executar comandos e recuperar os resultados da execuo do comando. Os resultados da execuo podero ser armazenados em um DataSet (veja explicao adiante) para serem mesclados com outros dados (at mesmo dados provenientes de outras fontes) ou enviar os resultados da execuo para outra camada de aplicao. Os data providers nativos do .Net Framework so listados a seguir: I. II. III. IV. .NET Framework Data Provider for SQL Server: prov o acesso aos dados para o Microsoft SQL Server verso 7.0 ou superior; .NET Framework Data Provider for OLE DB: prov acesso aos dados para fontes de dados OLE DB; .NET Framework Data Provider for ODBC: prov acesso aos dados para fontes de dados ODBC; .NET Framework Data Provider for Oracle: prov o acesso aos dados para o banco de dados Oracle atravs do programa Oracle cliente verso 8.1.7 ou superior.

Arquitetura do ADO .NetA Figura 1 mostra a estrutura e os componentes existentes no ADO.Net.

Figura 1 - Arquitetura do ADO .Net.

A seguir sero listadas as principais classes existentes dentro de um data provider: I. II. Connection: responsvel por estabelecer a conexo com uma fonte de dados especfica atravs de uma connection string; Command: executa um comando em uma fonte de dados. Possui propriedades do tipo Parameter que sero utilizadas pelo contedo do comando (o comando executado poder ser uma instruo SQL ou a chamada de uma stored procedure); DataReader: manipula um conjunto de dados da forma somente para frente (forwardonly) e somente leitura (read-only); DataAdapter: preenche um DataSet e realiza atualizaes na fonte de dados.

III. IV.

Microsoft Innovation Center 110 Desenvolvimento em .Net Conforme exposto na Figura 1, a classe DataAdapter trabalha em conjunto com a classe DataSet. A classe DataSet foi projetada para atuar em cenrios que trabalham com dados desconectados e distribudos atravs do ADO .Net. O DataSet pode ser considerado uma representao em memria dos dados e sua estrutura semelhante de um banco de dados relacional, onde existe a representao de tabelas, relacionamentos e restries sobre as tabelas. Alm de todas as funcionalidades descritas acima, o DataSet ainda possibilita persistir e carregar seu contedo no formato XML, utilizando um esquema XML criado atravs da XML Schema definition language. A Figura 2 exibe de forma mais detalhada a estrutura do DataSet.

Figura 2 - Viso geral do DataSet.

Microsoft Innovation Center 111 Desenvolvimento em .Net

Laboratrio 1 Primeira aplicao de acesso ao banco de dadosO .Net Framework nos permite realizar de diversas maneiras o acesso ao uma base de dados. Entre elas podemos utilizar a classe DataSet, onde atravs de linhas de cdigo realizamos a manipulao dos dados. Outra forma de se utilizar a classe DataSet atravs de um DataSet tipado, indicando que o DataSet uma cpia da estrutura de uma base de dados relacional. Alm das formas citadas anteriormente, tambm possvel realizar a manipulao dos dados somente atravs de linhas de cdigo e objetos de coleo para recuperar, armazenar e atualizar dados em uma fonte de dados. O programa que criaremos neste momento, ser responsvel por armazenar informaes de contatos pessoais, exatamente como uma agenda. Utilizaremos um DataSet tipado para auxiliar na construo do programa. - Criando o banco de dados: O primeiro procedimento a ser seguido ser a criao do banco dados. Nosso objetivo nesse capitulo abordar a utilizao do ADO .Net para realizar acessos em uma base de dados. Sendo assim no vamos focar detalhadamente na construo do banco utilizando SQL Server. Contudo, se voc no possui muita familiaridade com este assunto, poder ento analisar algumas terminologias sobre a construo de banco de dados logo abaixo: I. Entidades so as tabelas de um banco de dados, onde os dados so armazenados. Todas as linhas da tabela contm o mesmo nmero de colunas. Um banco de dados pode ter uma ou vrias entidades; Campo (tambm chamado de coluna, ou atributo) so as informaes armazenadas em um banco de dados pertencente a uma entidade. Campos tpicos em uma entidade de Clientes de uma empresa: Nome, Endereo, Telefone e Comentrios; Registros so todas as informaes inseridas nas entidades. Pode ser chamada tambm como linha das tabelas; Banco de dados relacional conjunto de tabelas de dados organizadas em torno de um tema em particular. Em geral a maioria dos bancos de dados trabalha com as entidades vinculadas dessa forma; Chaves as tabelas relacionam-se umas as outras atravs de chaves. Uma chave um conjunto de um ou mais atributos que determinam a unicidade de cada registro;

II.

III.

IV.

V.

Microsoft Innovation Center 112 Desenvolvimento em .Net VI. Chave primria (PK - Primary Key) - a chave que identifica cada registro dando-lhe unicidade. A chave primria nunca se repetir; Chave estrangeira (FK - Foreign Key) - a chave formada atravs de um relacionamento com a chave primria de outra tabela. Define um relacionamento entre as tabelas e podem ocorrer repetidas vezes. Caso a chave primria seja composta na origem, a chave estrangeira tambm o ser.

VII.

Caso tenha interesse em aprender sobre como trabalhar com o SQL Server, voc pode acessar o site da MSDN, onde pode ser encontrado grande nmero de material didtico. http://msdn.microsoft.com/pt-br/sqlserver/default.aspx

Vamos comear a construo da nossa base de dados, temos varias formas de realizar isto. Neste laboratrio criaremos a base diretamente do prprio Visual Studio. 1. Para executar o Visual Studio navegue ao menu Iniciar, em seus programas procure pela pasta Microsoft Visual Studio, e ento execute-o. 2. Com o Visual Studio carregado acesse a Server Explorer. Clique com o boto direito do mouse no cone Data Connections que dever aparecer, e selecione a opo Create New SQL Server Database. 3. Nessa nova janela devemos preencher alguns campos para criar uma nova base de dados. Como nossa base vai ficar no prprio computador, informaremos em Server name o contedo localhost\SQLEXPRESS, o que permite armazenar bancos de dados no prprio computador. Em New database name, coloque o nome de labCapituloVI. Feito isso clique em Ok para finalizar a criao. Esse formulrio dever estar como a Figura 3.

Figura 3 Criando uma nova base de dados.

Microsoft Innovation Center 113 Desenvolvimento em .Net 4. Nosso banco de dados est criado, porm, precisamos adicionar uma entidade para poder utilizar seu armazenamento. Volte para Server Explorer, expanda o cone Data Connections. Observe que a agora o banco de dados encontra-se l.

5. Expanda tambm o cone referente nossa base de dados. Com isso voc pode ter acesso a todas as configuraes e opes do nosso banco. Perceba que a pasta Tables est vazia. Clique com o boto direito sobre ela e escolha a opo Add New Table. 6. Uma nova rea para gerenciar banco de dados aparecer. Voc pode modificar o banco pelo prprio Visual Studio ou mesmo outra ferramenta para este fim. Nesse laboratrio usaremos apenas o Visual Studio. Pode perceber que temos uma tabela em branco, nela vamos adicionar o nome das colunas, seu tipo e se pode ou no deixar aquele campo da tabela em branco ao fazer um novo registro, preencha esse modelo de tabela de acordo com as informaes abaixo: Column name codigo nome idade dataNascimento telefone Data type int varchar(50) int datetime Varchar(30)

7. Deixe a opo Allow Nulls desmarcada em todos os campos. Na coluna codigo, clique com o boto direito e selecione a opo Set Primary Key, isso faz com que esse campo da tabela se torne a chave primria. 8. Ainda com a coluna codigo selecionada, logo embaixo na Column Properties, procure o campo Identity Specification, expanda-o e mude o campo (Is Identity) de No para Yes. O campo Identity, quando ativado, faz com que cada novo registro inserido nesta tabela seja sempre incrementado com o valor especificado em Identity Increment e, por essa coluna tambm ser uma chave primaria, faz com que esse cdigo nunca se repita dentro da entidade. O local dessa propriedade pode ser visto na Figura 4.

Microsoft Innovation Center 114 Desenvolvimento em .Net

Figura 4 Propriedade Identity da coluna codigo.

9. Sua tabela dever ficar parecida com a Figura 5.

Figura 5 Declaraes dos campos da tabela.

10. Clique no boto para salvar, aparecer uma janela pedindo para informar o nome da tabela, digite pessoa, e salve sua tabela. 11. Voltando na janela Server Explorer, voc ver que agora possvel expandir a pasta Tables. Verifique se sua tabela criada est dentro da pasta. 12. Com isso temos nossa base de dados pronta para ser utilizada. Vamos ao processo de desenvolvimento da aplicao. - Desenvolvendo a soluo: 1. Adicione um novo projeto. Preencha o campo Name, com acessoBD. Em Location escolha o local onde deseja salvar, e em templates marque a opo Windows Forms Application. Lembre-se que voc pode realizar esse laboratrio nas linguagens C# ou Visual Basic .Net. 2. Primeiramente, vamos preparar o nosso programa para receber e guardar as informaes da base de dados. Navegue at o menu superior chamado Data, clique no comando Add New Data Source. A janela Data Source Configuration Wizard dever aparecer como mostrada na Figura 6.

Microsoft Innovation Center 115 Desenvolvimento em .Net

Figura 6 Janela Data Source Configuration Wizard.

3. Essa ferramenta um recurso do Visual Studio que prepara sua aplicao para receber informaes do banco de dados. O assistente pede para que voc informe qual o tipo de banco de dados voc utilizar (local, remoto, um servio web ou personalizado), estabelece uma conexo com o banco de dados, e cria um DataSet para armazenar as tabelas definidas dentro do programa. 4. Escolha o cone Database e ento clique em Next. Nessa etapa devemos escolher qual string de conexo vamos utilizar. A string de conexo armazena as informaes necessrias para que a aplicao encontre corretamente a base de dados que ser utilizada. Mude o valor da combo para selecionar a string de conexo referente ao banco de dados criado anteriormente, depois disso clique em Next. 5. Continuando, o wizard de configurao oferece a opo de salvar essa string de conexo com um nome prprio, por padro j fornecido um nome, mas pode ser alterado. Utilizar essa opo permite que futuramente, caso seja necessrio possamos alterar ou configurar a string por meio desse nome, no nosso projeto no chegaremos a utilizar este recurso, contudo, uma boa pratica sempre deixar essa opo habilitada. Clique em Next para continuar. 6. Na prxima etapa voc deve selecionar quais sero os objetos que o seu Data Source ir armazenar. Neste caso vamos selecionar a entidade inteira que temos na nossa base de dados. Assim como demonstra a Figura 7.

Figura 7 Seleo de objetos para o Data Source.

Microsoft Innovation Center 116 Desenvolvimento em .Net 7. Feito isso clique em Finish. A partir deste momento o Data Source est disponvel para a aplicao. 8. Abra agora o design do seu arquivo Form1. Navegue para a ToolBox, procure o controle TabControl, arraste e solte para o seu formulrio. Nesse novo controle clique no TabPage1 e depois clique no corpo do controle, v em suas propriedades e altere o campo Text para Consulta, faa a mesma coisa clicando em TabPage2, porm altere o texto para Cadastro. Organize para que fique parecido com a Figura 8.

Figura 8 Formulrio Form1 modificado.

9. Se a janela auxiliar Data Source no estiver aberta navegue novamente para o menu superior, acesse Data e escolha a opo Show Data Sources, ou ento use o atalho Shift-Alt-D. A janela Data Source deve estar parecida com a Figura 9.

Figura 9 Janela Data Source.

10. Perceba que aqui voc tem acesso aos dados do seu DataSet, utilizaremos agora essa janela, para integrar de forma bem simples o banco com controles, juntos no seu formulrio. Clique no primeiro campo de sua tabela que aparece na janela Data Source e arraste-o para dentro do corpo da Tab Consulta. Veja que seu formulrio foi alterado, agora ele possui um menu na parte superior, como tambm uma label e uma caixa de textos representando esse campo do banco de dados. 11. Voc pode fazer alteraes nesses dois campos criados automaticamente. Agora arraste para o formulrio os outros campos da tabela. 12. Agora selecione o menu que foi criado automaticamente, clique na setinha que fica na parte superior para acessar as opes de configurao. Na opo Dock, mude a combo para None. Isso permite organizar o local desse menu da maneira que voc quiser.

Microsoft Innovation Center 117 Desenvolvimento em .Net Arraste ele para o corpo da Tab Consulta tambm. Organize seu formulrio, altere as labels e deixe tudo parecido com a Figura 10.

Figura 10 Formulrio Form1 com novos controles adicionados.

13. Depois de organizados, apague a caixa de textos referente ao campo telefone. Navegue para janela ToolBox e procure o controle MaskedTextBox, como mostra a Figura 11. Adicione uma MaskedTextBox na frente da label telefone. Utilizaremos esse campo mascarado para apresentar os nmeros de telefone.

Figura 11 Controle MaskedTextBox.

14. Depois de adicionado, selecione e clique na setinha que aparece na parte superior direita. Escolha a opo Set Mask. 15. Nessa nova janela, escolha a opo Phone Number. Mude o campo Mask para (99) 0000-0000. Clique em OK para finalizar. 16. Agora nas Properties da MaskedTextBox, expanda o campo (DataBindings). No campo Text que apareceu clique na combo e escolha a opo PessoaBindingSource, expanda-o e escolha o campo telefone. 17. Antes de executar o programa para alguns testes, vamos criar alguns registros na nossa entidade. Volte na Server Explorer, expanda a nossa conexo, e depois clique em Tables. Na nossa entidade criada, clique com o boto direito e escolha a opo Show Table Data.

Microsoft Innovation Center 118 Desenvolvimento em .Net

18. Agora podemos adicionar registros na nossa tabela, voc pode seguir o exemplo da Figura 12 para fazer os seus registros. Perceba que o campo cdigo no tem como alterar seu valor, como tambm adicionado automaticamente, j que ele foi marcado como Identity. Na data de nascimento, digite apenas o dia/ms/ano, o prprio Visual Studio se encarrega de completar o resto de informaes nesse atributo.

Figura 12 Exemplo de registros

19. Fazer a ligao dos controles com o DataSet foi bem simples, porm, como estamos utilizando um DataSet, todos os dados que modificarmos no programa, no estaro alterados quando o programa for iniciado novamente, j que estamos utilizando a entidade com os dados salvos na memria sem retornar suas alteraes para o prprio banco de dados. Salve o projeto, e faa os testes. 20. Vamos adicionar um campo para consulta, assim podemos realizar filtros em nossas visualizaes do banco de dados. Em primeiro lugar, selecione o campo de texto de cdigo (poderia ser qualquer outro campo que est recebendo dados do dataset). Clique agora na setinha em sua parte superior, nas opes que aparece, escolha Add Query. 21. Nessa nova janela, temos a possibilidade de configurar o nosso acesso ao banco de dados com comando em SQL para criar os filtros. No campo New Query Name, digite Pesquisar. 22. Na parte Query Text apague tudo e cole o cdigo como mostra a Figura 13. Depois clique em Ok para salvar a alterao.

Microsoft Innovation Center 119 Desenvolvimento em .Net

Figura 13 Adicionando o comando em SQL para filtragem.

23. Repare que o Visual Studio criou algo parecido com o menu anterior, porm agora temos uma label, uma caixa de texto e um boto. Esse menu tambm possui algumas opes a mais que podem ser editadas acessando o menu Task pela setinha superior enquanto o controle estiver selecionado. 24. Essa query que adicionamos no programa faz com que o valor digitado no campo de texto seja recuperado e com ele acontea uma filtragem dos dados do banco, dessa forma simples podemos elaborar nossas consultas e estabelecer filtros para os nossos projetos. 25. Selecione o novo menu criado na parte superior e clique na setinha para acessar as opes. Como feito anteriormente, modifique o campo Dock para None. Agora arrasteo para o corpo da Tab Consulta, de modo que fique do lado direito do outro menu. Seu projeto deve estar se parecendo com a Figura 14.

Figura 14 Formulrio Form1 alterado.

Microsoft Innovation Center 120 Desenvolvimento em .Net 26. Antes de realizar seus novos testes, crie mais registros do mesmo modo que foi feito anteriormente, para que voc possa perceber melhor o novo resultado. Salve tudo e execute o programa. 27. Vamos agora comear a alterao do formulrio para permitir a insero de novos registros. Clique na Tab Cadastro, o corpo da Tab ficara vazio, vamos adicionar alguns controles, v para ToolBox e arraste para dentro da Tab quatro labels. Mude as propriedades delas de acordo com a tabela abaixo: Controle Label1 Label2 Label3 Label4 Campo (Text) Nome: Idade: Data nascimento: Telefone:

28. Agora vamos adicionar mais um controle respectivo para cada uma dessas labels, coloque dois TextBox para os campos Nome e Idade, e dois MaskedTextBox, um para Data nascimento e outro para Telefone. Mude suas propriedades tambm, siga a tabela abaixo: Controle TextBox1 TextBox2 MaskedTextBox1 MaskedTextBox2 Campo(Name) txtNome txtIdade mtxtData mtxtTelefone

29. Ainda faltam dois botes para serem adicionados. V para ToolBox e arraste dois controles Button para a Tab. Modifique suas propriedades tambm. Controle Button1 Button2 Campo(Name) btnLimpar btnSalvar Campo(Text) Limpar Salvar

30. Vamos as mascaras nas nossas MaskedTextBox, siga o mesmo processo feito na MaskedTextBox da Tab Consulta. Na mtxtData escolha marcao Short date, e na mtxtTelefone escolha Phone number, e mude a Mask para (99) 0000-0000. Seu projeto deve ficar parecido com a Figura 15.

Microsoft Innovation Center 121 Desenvolvimento em .Net

Figura 15 Controles para cadastro.

31. De um clique duplo no boto Limpar. Vamos adicionar o cdigo para que quando executado, deixe em branco os campos de texto. Ao dar um clique duplo em um controle, o Visual Studio cria automaticamente o evento respectivo ao click para aquele controle. Adicione o cdigo como aparece na Figura 16 para C# ou para Visual Basic .Net na Figura 17, dentro do evento do boto Limpar:txtIdade.Text = ""; txtNome.Text = ""; mtxtData.Text = ""; mtxtTelefone.Text = ""; Figura 16 Cdigo para o boto Limpar em C#. txtIdade.Text = "" txtNome.Text = "" mtxtData.Text = "" mtxtTelefone.Text = "" Figura 17 Cdigo para o boto Limpar em Visual Basic .Net.

32. Agora necessrio introduzir o cdigo para o evento do boto Salvar. Novamente de um clique duplo para criar o evento, e adicione o cdigo que mostrado na Figura 19 ou 20.

Microsoft Innovation Center 122 Desenvolvimento em .Netstring sql; string strConn = Properties.Settings.Default.labCapituloVIConnectionString.ToString(); if (valida()) { sql = "Insert into pessoa(nome, idade, dataNascimento, telefone) values ('" + txtNome.Text + "','" + txtIdade.Text + "','" + mtxtData.Text + "','" + mtxtTelefone.Text + "')"; SqlConnection con = new SqlConnection(strConn); SqlCommand cmd = new SqlCommand(sql, con); try { con.Open(); cmd.ExecuteNonQuery(); MessageBox.Show("Cadastro efetuado com sucesso."); con.Close(); } catch (SqlException ex) { MessageBox.Show(ex.Message); } } else { MessageBox.Show("Dados incompletos."); } Figura 19 Cdigo para o boto Salvar na linguagem C#. Dim sql As String = "" Dim strConn As String = My.Settings.CadastroConnectionString.ToString() If valida() Then sql = "Insert into pessoa(nome, idade, dataNascimento, telefone) values ('" _ + txtNome.Text + "','" _ + txtIdade.Text + "','" _ + mtxtData.Text + "','" _ + mtxtTelefone.Text + "')" Dim con As New SqlConnection(strConn) Dim cmd As New SqlCommand(sql, con) Try con.Open() cmd.ExecuteNonQuery() MsgBox("Cadastro efetuado com sucesso.") con.Close() Catch ex As Exception MsgBox(ex.Message) End Try Else MsgBox("Dados incompletos.") End If Figura 20 Cdigo para o boto Salvar na linguagem Visual Basic .Net.

Microsoft Innovation Center 123 Desenvolvimento em .Net 33. Quando vamos gerenciar nossa base de dados por meio de cdigo, precisamos seguir alguns passos. Utilizamos nossa string de conexo com informaes de onde de est localizada a base de dados e como acess-la para criar uma conexo com o banco. Depois de ter a conexo criada, precisamos escrever um comando em SQL para posteriormente execut-lo. O resultado obtido pode variar dependendo do comando que voc est querendo utilizar. Podemos realizar comandos para insero, ou mesmo busca de dados. Antes de executar o comando em SQL, precisamos abrir nossa conexo, e fech-la apenas depois de ter certeza que no estamos mais acessando nada. Um erro muito comum deix-la aberta, o que pode causar excees ou mesmo diminuir o desempenho da rede. 34. Vamos analisar cada linha do cdigo que foi adicionada no boto Salvar. Primeiramente, declaramos duas variveis do tipo string. A primeira (sql) ser utilizada para armazenar o nosso comando em SQL. A segunda (strConn) guarda a string de conexo. Como j tnhamos criado anteriormente essa string, podemos recuper-la por meio de cdigo, diminuindo o trabalho que teramos caso fossemos escrev-la. 35. Depois disso declaramos uma estrutura de condio. Nela fazemos a validao de um mtodo, o qual ser declarado logo mais. Esse mtodo cuida para validar se todos os campos realmente esto com valores. J que o nosso banco de dados no permite que nenhum valor seja nulo. 36. Logo em seguida declaramos mais duas variveis. A primeira (con) responsvel por gerenciar a string de conexo, essa varivel tem um tipo prprio para isso. Como mostrado, na prpria declarao passamos o valor da varivel strConn, assim deixando-a pronta para uso. A segunda varivel (cmd) responsvel por utilizar os comandos em SQL. Esta varivel contm inicialmente o comando SQL e tambm qual varivel de conexo utilizar. 37. A prxima instruo uma estrutura de tratamento de erros. uma boa prtica utilizar essas estruturas para evitar que erros parem o funcionamento do programa. Nessa situao vamos tentar executar certo trecho que cdigo. Na primeira linha dele abrimos a nossa conexo, isso feito de forma bem simples, j que os comandos oferecidos pelo Framework .Net so intuitivos. Com a conexo aberta chamados a varivel cmd e utilizamos o mtodo responsvel para executar o cdigo. O mtodo ExecuteNonQuery utilizado quando queremos realizar comandos que no retornam nada. Para outros tipos de comandos, como por exemplo, um select, que j retorna informaes, precisamos usar outro tipo de Execute, entre eles podemos utilizar o ExecuteReader. Finalmente, depois de executar o comando utilizamos uma caixa de mensagem para informar ao usurio que o cadastramento ocorreu com sucesso, caso ocorra um erro durante esse trecho de cdigo, utilizamos uma caixa de mensagem tambm, informando que ocorreu um erro e a descrio do mesmo.

Microsoft Innovation Center 124 Desenvolvimento em .Net 38. No podemos nos esquecer de fechar a conexo depois de finalizarmos a execuo do comando. Logo em seguida adicionamos uma mensagem caso o mtodo valida() no seja executado com sucesso. 39. Adicione tambm o cdigo para o evento valida() como mostra a Figura 21 para C# e a Figura 22 para Visual Basic .Net. No esquea que voc deve copiar esse trecho de cdigo agora para fora do evento click do boto Salvar.public bool valida() { if (txtNome.Text == "") return false; else if (txtIdade.Text == "") return false; else if (mtxtData.Text == "") return false; else if (mtxtTelefone.Text == "") return false; else return true; } Figura 21 Cdigo para o mtodo valida() em C#.Private Function valida() As Boolean If txtNome.Text = String.Empty Or txtIdade.Text = String.Empty Or _ mtxtData.Text = String.Empty Or mtxtTelefone.Text = String.Empty Then Return False Else Return True End If End Function

Figura 22 Cdigo para o mtodo valida() em Visual Basic .Net.

40. Note que no adicionamos nem uma label e nem uma caixa de texto para o campo cdigo. J que na criao da entidade pessoa, autorizamos a preencher o valor de cdigo automaticamente (Identity) no precisamos nos preocupar em representar ele durante a efetuao de novos cadastros. 41. Salve o projeto e execute-o para fazer os testes. Crie novos registros para o banco de dados utilizando a Tab de cadastro. Verifique depois na Tab de consulta se os dados esto sendo inseridos corretamente.

Microsoft Innovation Center 125 Desenvolvimento em .Net

Laboratrio 2 Trabalhando com uma base de dados por meio de cdigo

Esse laboratrio tem como objeto aplicar diferentes formas que temos para acessar uma base de dados com ADO .Net. Sero apenas formulrios simples que executaram funes especificadas utilizando as funes de busca em uma base de dados. - Criando a base de dados para a aplicao: Para est aplicao criaremos uma base de dados bem simples, apenas para aplicarmos as funes propostas no laboratrio. Como nosso programa no tem um foco especifico, vamos criar uma entidade que atenda o armazenamento de dados genricos, que podem sem encontrados em quase todos os tipos de aplicaes. O banco de dados ser criado de uma maneira bem simples, utilizando a prpria interface de gerenciamento que o Visual Studio fornece. Vamos ento iniciar o processo de criao da base de dados. 1. Para executar o Visual Studio navegue ao menu Iniciar > Programas e procure pela pasta Microsoft Visual Studio para execut-lo. 2. Com o Visual Studio carregado acesse a janela Server Explorer. Clique com o boto direito do mouse no cone Data Connections que dever aparecer e selecione a opo Create New SQL Server Database. 3. Nessa nova janela devemos preencher alguns campos para criar uma nova base de dados. Como nossa base vai ficar no prprio computador, informamos em Server name, essa opo preenchendo com localhost\SQLEXPRESS, o que permite armazenar bancos de dados no prprio computador. Em New database name, coloque o nome de bancoTeste. Feito isso clique em Ok para finalizar a criao. Esse formulrio dever estar como a Figua 23.

Figura 23 Criando uma nova base de dados.

Microsoft Innovation Center 126 Desenvolvimento em .Net 4. Agora que temos a base de dados pronta, podemos adicionar a entidade que ser responsvel por armazenar nossos dados. Sendo assim, navegue novamente para Server Explorer. Expanda o cone Data Connections para temos acesso a todas as conexes estabelecidas entre o Visual Studio e os bancos de dados. Procure pela nossa base de dados e expanda seu cone tambm. Feito isso, temos acesso a todas as configuraes que nosso banco de dados permite. V at o cone Tables, e clique sobre ele com o boto direito do mouse. Entre as suas opes escolha Add New Table. 5. Siga a Figura 24 para preencher os campos que sua tabela vai conter.

Figura 24 Modelo para criao de uma nova entidade.

6. Selecione o campo codigo, clique com o boto direito sobre ele e escolha a opo Set Primary key. Perceba que aparece um cone na frente desse campo representando a mudana. Esse campo foi estabelecido como chave primaria, para que possamos fazer o controle e manter a organizao da entidade por ele. 7. Como uma chave primaria no pode ter seu valor repetido dentro de uma entidade, vamos acionar uma opo que facilitara na hora da criao de novos registros. Vamos optar por deixar o preenchimento desse campo por conta do prprio gerenciador da base de dados, pois ele sempre preencher esse campo, de forma crescente em cada registro inserido. Exemplo: no primeiro registro, ele atribui o valor inteiro um, no segundo registro adicionado, ele atribui o ultimo valor adicionado nesse campo, mas com o incremento de mais um, ou seja, o segundo registro ter o valor do nmero inteiro dois em seu atributo cdigo. Essa opo bem simples de ser acionada, selecione o campo codigo, navegue at a janela Column Properties, localizada por padro na parte inferior do Visual Studio. Procure pela opo Identity Specification, expanda-o e altere para Yes o valor do campo Is Identity, assim como mostra a Figura 25.

Figura 25 Alterando as propriedades da coluna codigo.

Microsoft Innovation Center 127 Desenvolvimento em .Net 8. Com essas configuraes alteradas, salve a tabela e d o nome de cadastro. 9. Vamos deixar alguns registros prontos na nossa entidade, para isso, navegue de volta para Server Explorer, v at nossa base de dados, dessa vez expanda o cone da pasta Tables. Veja que agora nossa nova tabela se encontra l. Clique com o boto direito sobre ela e escolha opo Show Table Data. 10. Nesta etapa, vamos fazer a insero diretamente de novos registros. Faa alguns cadastros, voc pode usar como exemplo a Figura 26.

Figura 26 Exemplo de registros.

11. Feito isso, salve as alteraes. A base de dados est pronta e vamos agora para o desenvolvimento da aplicao. 1. Aps criar a base de dados, acesse o menu superior do Visual Studio para criar um novo projeto. Em File, escolha a opo New, e depois Project. coloque o nome aplicacaoTeste em Name, em Location escolha o local que deseja salvar, e por final escolha qual template voc ir utilizar, no nosso caso, marque a opo Windows Forms Application. Lembre-se que voc pode realizar essa atividade tanto em C# como em Visual Basic .Net. 2. Com o projeto criado, navegue at a Solution Explorer, e dentro do projeto adicione um novo formulrio, chamado selecao. 3. V at o design do seu formulrio Form1, adicione um novo controle ContextMenuStrip, observe a Figura 27 para saber onde encontr-lo.

Figura 27 Localizao do controle ContextMenuStrip.

4. Com o controle adicionado no formulrio, adicione os seguintes itens a ele: Seleo, e Sair. Dever ficar parecido com a Figura 28.

Microsoft Innovation Center 128 Desenvolvimento em .Net

Figura 28 Criando itens para o novo controle.

5. Selecione agora as propriedades do nosso formulrio Form1, procure pela opo chamada ContentMenuStrip, e marque nela o nome do nosso menu adicionado. Esse menu ser sempre ativado quando o usurio estiver no formulrio Form1 e der um clique com o boto direito do mouse. Aproveite para alterar a propriedade Text o formulrio para Aplicao teste. 6. Agora acione novamente o nosso controle ContentMenuStrip, nos itens adicionados, d um duplo clique sobre Sair. Assim ser criado o evento responsvel para essa ao. 7. Dentro do evento criado, digite a linha de cdigo: close(); . Esse cdigo responsvel por finalizar a aplicao quando acionado. 8. Vamos trabalhar agora com o nosso outro formulrio. Ele ir mostrar como podemos realizar buscas em nossas bases de dados, por meio de cdigo. 9. O objetivo desse formulrio ser mostrar algumas formas de como podemos introduzir a ao de seleo em nosso programa com a base de dados. Primeiramente, navegue para o modo design desse formulrio. Agora adicione alguns controles a ele: uma TextBox, uma ListBox, um Button, uma ComboBox e uma GroupBox. Altere suas propriedades de acordo com a tabela abaixo. Controle Form1 Button1 TextBox1 ComboBox1 GroupBox1 ListBox1 Propriedade (Text) Seleo Pesquisar Propriedade (Name) btnPesquisar txtPesquisar cmbPesquisar lstResultado

Busca

10. Vamos alterar algumas propriedades mais especificas agora. Selecione a lstResultado, procure em suas propriedade pela opo ScrollAlwaysVisible e mude seu valor para True. Na cmbPesquisar, procure pela opo Items e clique para adicionar novos dados. Isso far com que aparea uma nova janela. Aqui podemos adicionar quais sero os itens da nossa combo. Adicione os itens Nome e Idade, sendo um por linha, assim como mostra a Figura 29.

Microsoft Innovation Center 129 Desenvolvimento em .Net

Figura 29 - Adicionando itens a uma combo.

11. Com isso o layout inicial do nosso formulrio est pronto. Vamos para a parte de cdigo da nossa aplicao. 12. Inicialmente nosso programa vai ter duas funes. Uma delas cuida para verificar se existe algum contedo na caixa de texto e se ela est de forma correta referente ao tipo de busca que poder ser feito (por nome ou idade). A outra funo faz a conexo com o banco de dados, e monta a linha de comando de acordo com a opo de busca estabelecida, retornando os resultados obtidos dentro da lstResultado. 13. Vamos ento criar a primeira funo citada. Abra a pgina de cdigo do seu formulrio selecao, voc pode clicar com o boto direito sobre o design do formulrio e escolher a opo View Code para acessar essa rea. 14. Insira o cdigo da Figura 30 ou 31 em seu arquivo logo aps o final do mtodo que inicializa a criao do formulrio.

Microsoft Innovation Center 130 Desenvolvimento em .Netpublic bool Valida() { try { if (cmb