Você está na página 1de 37

Copyright | Curso de C# Mdulo II Windows Form Prof.

Carlos Vamberto











CURSO DE






por
Carlos Vamberto



Mdulo II
Aplicaes Desktop
Curso C# Mdulo II Carlos Vamberto pgina 2
Copyright | Curso de C# Mdulo II Windows Form Prof. Carlos Vamberto



Dedicatria

minha filha querida Karlla Oksana

Agradecimentos

Ao grupo de estudo do Abare.NET pelo incentivo de realizar este material.

Ao meu pai, Carlos Vamberto, pelo apoio didtico e lgico deste material.
Prefcio

No Mdulo I aprendemos toda a estrutura da linguagem C#. Neste Mdulo usaremos a linguagem
C# para criar aplicaes Windows conhecendo seus componentes visuais, gerao de aplicaes
com uso de banco de dados, trabalhar com arquivos XML, trabalhar com Web Services, entre
outros conhecimentos.




Curso C# Mdulo II Carlos Vamberto pgina 3
Copyright | Curso de C# Mdulo II Windows Form Prof. Carlos Vamberto

Sumrio

Dedicatria ........................................................................................................................ 2
Agradecimentos ................................................................................................................. 2
Prefcio ............................................................................................................................. 2
Sumrio ............................................................................................................................ 3
Captulo 1 Introduo ....................................................................................................... 4
Conhecendo a IDE do Visual Studio .NET 2005 .................................................................... 4
Captulo 2 Criando a primeira aplicao .............................................................................. 6
Captulo 3 Conhecendo as Ferramentas de Trabalho ............................................................. 8
Solution Explorer (Ctrl+W,S) ............................................................................................. 8
Properties (F4) ................................................................................................................ 8
Object Browser (Ctrl+W,J) ................................................................................................ 8
Toolbox (Ctrl+W,X) .......................................................................................................... 8
Class View (Ctrl+W,C) ...................................................................................................... 8
Server Explorer (Ctrl+W,L) ............................................................................................... 8
Captulo 4 Conhecendo alguns componentes com exemplos .................................................. 9
Captulo 5 Conhecendo as classes DateTime e TimeSpan .................................................... 10
Captulo 6 CheckListBox, ComboBox, RadioButton, MonthCalendar, ListBox e GroupBox ......... 11
Captulo 7 Trabalhando com as Caixas de Dilogo .............................................................. 13
Captulo 8 Trabalhando com formulrios ........................................................................... 15
Captulo 9 Trabalhando com formulrios MDI .................................................................... 16
Captulo 10 Trabalhando com Banco de Dados ................................................................... 19
Captulo 11 Fazendo conexes na mo ............................................................................. 26
Captulo 12 Trabalhando com Stored Procedures ............................................................... 27
Captulo 13 Banco de Dados em XML ................................................................................ 30
Captulo 14 Trabalhando com WebService ......................................................................... 33
O que WebService? ..................................................................................................... 33

Curso C# Mdulo II Carlos Vamberto pgina 4
Copyright | Curso de C# Mdulo II Windows Form Prof. Carlos Vamberto

Captulo 1 Introduo
Conhecendo a IDE do Visual Studio .NET 2005

Iremos logo mais, conhecer o ambiente de desenvolvimento da Microsoft multilinguagem para
construo de aplicaes usando a tecnologia .NET.


Ilustrao 1 - Tela inicial do VS .NET 2005
A IDE do VS .NET contm tudo que necessrio para facilitar o dia-a-dia do programador.

O VS .NET a ferramenta oficial de desenvolvimento de software da plataforma Microsoft .NET.
Ele contm um ambiente integrado para ser usado em todas as fases de desenvolvimento
contendo um editor de cdigo-fonte, compiladores, depuradores e utilitrios diversos. O VS .NET
tambm pode editar diversos tipos de documentos inclusive imagens em diversos formatos,
arquivos XML, schemas XSD, arquivos binrios, e outros.

Ele contm diversos utilitrios para visualizar servidores de banco de dados SQL Server, servios
do Windows, eventos de sistemas, e muitos outros.

A primeira vista o ambiente do VS .NET semelhante ao ambiente do Visual InterDev do VS 6.
Hospeda todas as linguagem da Microsoft suportadas na plataforma .NET (VB.NET, C#, C++, J# e
JScript). Ela tambm pode hospedar linguagens de outras empresas como o COBOL .NET e Perl.

Curso C# Mdulo II Carlos Vamberto pgina 5
Copyright | Curso de C# Mdulo II Windows Form Prof. Carlos Vamberto

O VS .NET pode ser estendido, por exemplo: gravar macro de operaes rotineiras. A IDE
tambm pode ser estendida criando ferramentas para ela.

Vejamos a ilustrao a seguir, algumas das ferramentas que encontramos nesta IDE.


Ilustrao 2 - Janela de Projeto do VS .NET 2005
1 Server Explorer - Visualiza os servios da mquina atual, os servidores de banco de dados
SQL Server, entre outras funcionalidades.

2 Toolbox Caixa de ferramenta que contm os principais componentes do .NET Framework

3 Form Editor rea de trabalho para criao dos formulrio que sero usados em uma
aplicao.

4 Solution Explorer Ferramenta que auxilia visualizar as referencias de bibliotecas de
classes como tambm, os formulrios.

5 Class View Como o nome j diz, o Class View serve para visualizar todas as classes
instanciadas no formulrio que est sendo visualizado.

6 Properties Ferramenta que altera as propriedades e constri os mtodos de um
componente.

7 Dynamic Help Janela que apresenta possveis ajudas no que est sendo digitado ou
selecionado no momento. Ela s funcional se o MSDN Library estiver instalado.
1
2
3
4
5
6
8
7
Curso C# Mdulo II Carlos Vamberto pgina 6
Copyright | Curso de C# Mdulo II Windows Form Prof. Carlos Vamberto


8 Toolbar Barra de ferramenta que facilita algumas operaes como gravao, compilao,
depurao, exibio de janelas ocultas, entre outros.

O VS .NET permite criar diversos tipos de aplicativos em diversas linguagens como:
Windows Form (Janela)
Console (Prompt do DOS)
DLL (Bibliotecas de Classes)
Web Application (Aplicativos Web)
Web Services (Servios de Web)
Windows Services (Servios do Windows)
Projetos de Instalao
Mbile (Aplicao para dispositivos portteis)


Captulo 2 Criando a primeira aplicao

O principal objetivo deste captulo mostrar como funciona a IDE do VS .NET criando uma
aplicao contendo alguns componentes como TextBox e Button.

Vamos agora criar um projeto seguido as seguintes instrues:

1. Clique no menu File e escolha a opo New Project ou simplesmente pressiona as
teclas de atalho Ctrl+Shift+N
2. Em Project Type selecione C#
3. Em Templates selecione Windows Application
4. Em Name Digite: PrimeirAplicacao
5. Observe onde ser gravado em Location


Ilustrao 3 - Janela de "New Project"
6. Clique no boto Ok.

Aparecer a seguinte janela:
Curso C# Mdulo II Carlos Vamberto pgina 7
Copyright | Curso de C# Mdulo II Windows Form Prof. Carlos Vamberto



Ilustrao 4 - VS.NET com um novo projeto Windows Form
Observe no lado esquerdo o ToolBox. Dentro de Windows Forms ns encontraremos vrios
componentes.

7. Localize e clique e arraste at o formulrio Form1 o componente TextBox que se
encontra na Toolbox
8. Faa o mesmo para o componente Button
9. Clique no TextBox1 inserido no Form1 para selecion-lo
10. Na janela Properties do lado direito, voc encontrar uma propriedade chamada Name.
Clique nela e mude seu valor para txtMensagem
11. Na propriedade Text retire com contedo deixando-a vazia
12. Clique no componente Button1 inserido no Form1
13. Troque a propriedade Name para btnOk, troque tambm a propriedade Text para Ok
14. Clique duas vezes sobre o boto Ok para abrir o mtodo OnClick desde boto e digite o
seguinte cdigo.

private void btnOk_Click(object sender, System.EventArgs e)
{
txtMensagem.Text = "Alo Mundo!!!";
}
15. Redimensione a janela para que fique igual a imagem abaixo:

Curso C# Mdulo II Carlos Vamberto pgina 8
Copyright | Curso de C# Mdulo II Windows Form Prof. Carlos Vamberto


16. Clique no Form1 e altere a propriedade Text para Primeira Aplicao
17. Pressione a tecla F5 para executar a aplicao e teste.

Com esta demonstrao voc percebe que no complicado construir uma aplicao.

Captulo 3 Conhecendo as Ferramentas de Trabalho

Aqui conheceremos algumas ferramentas que auxiliam no desenvolvimento de aplicaes bem
com suas respectivas formas de acessos.
Solution Explorer (Ctrl+W,S)

Na janela Solution Explorer encontramos todas as referencias que o projeto faz com DLLs, Web
Services, COM Componentes, ActiveX, entre outros. Nele tambm encontramos a lista de
Formulrios e Classes que temos no projeto.
Properties (F4)
Na janela Properties encontramos todas as propriedades dos componentes utilizados no projeto
e tambm os eventos dos mesmos.
Object Browser (Ctrl+W,J )
O Object Browser uma janela que abre na rea de trabalho e serve para visualizar todos os
Namespaces (pacote) utilizados no projeto e suas respectivas classes.
Toolbox (Ctrl+W,X)
Caixa de Ferramenta que contm todos os componentes que podem ser usados em um projeto,
seja Web Application, Windows Application ou Mobile Application.
Class View (Ctrl+W,C)
Janela que contm classes com suas propriedades, mtodos e eventos encontrados no cdigo em
visualizao no momento, esta aparncia se apresenta em forma de rvore (treeview).
Server Explorer (Ctrl+W,L)
Aqui encontramos uma janela contendo informaes sobre: Servios do Windows, Logs de
Eventos, Lista de mensagens, Contador de Performance e Servidores de SqlServer.

Podemos adicionar no Server Explorer conexes com banco de dados (Data Connections)
mesmos aqueles que so diferentes do SQL Server mas que contenha seu drive ODBC. Exemplo:
MS Access; DBase; Oracle; InterBase; Excel; etc.






Curso C# Mdulo II Carlos Vamberto pgina 9
Copyright | Curso de C# Mdulo II Windows Form Prof. Carlos Vamberto

Captulo 4 Conhecendo alguns componentes com exemplos

Para um estudante de uma nova tecnologia, sua principal frustrao a ansiedade, desta forma,
irei aliviar esta frustrao aos iniciantes.

Neste captulo iremos construir uma pequena aplicao de gerao de recibo para conhecer alguns
componentes como o TextBox e o ComboBox e suas propriedades comum.

1. Inicie um novo projeto C# do tipo Windows Application
2. Adicione os componentes (Panel, Label, TextBox, ComboBox, RichTextBox e Button) como
mostrado na figura a seguir


Ilustrao 5 - Formulrio com os componentes inseridos
3. D os seguintes nomes aos componentes inseridos:

txtPagador;
txtRecebedor;
txtValor;
txtExtenso;
cmbReferente;
btnGerar;
ricTexto;

4. Entre na propriedade Items do ComboBox e digite em cada linha:
- servios prestados em treinamento
- suporte tcnico
- servios prestados no desenvolvimento de sistemas
5. Clique duas vezes no boto Gerar e digite o seguinte cdigo:

// Variveis
string linha;
const string branco = "\n";
int posicao;


Curso C# Mdulo II Carlos Vamberto pgina 10
Copyright | Curso de C# Mdulo II Windows Form Prof. Carlos Vamberto

// Limpando o RichText
ricTexto.Clear();

linha = "R E C I B O " + branco;

ricTexto.AppendText(linha);
ricTexto.AppendText(branco);

linha = "Eu " + txtRecebedor.Text + ", recebi a importncia de "
+ txtValor.Text + "(" + txtExtenso.Text + "), referemte a(o) "
+ cmbReferente.Text + "." + branco;
ricTexto.AppendText(linha);
ricTexto.AppendText(branco);ricTexto.AppendText(branco);
ricTexto.AppendText("-------------------------" + branco);
ricTexto.AppendText(txtRecebedor.Text);

ricTexto.Focus();
ricTexto.Select(0,11);

ricTexto.SelectionFont = new Font(ricTexto.SelectionFont,FontStyle.Bold);

6. Execute o cdigo pressionando a tecla F5, preencha os campos e clique no
boto Gerar. Veja o resultado.

Neste captulo passamos a conhecer um pouco dos componentes TextEdit, ComboBox e
Button.

Captulo 5 Conhecendo as classes DateTime e TimeSpan

Aqui conheceremos um novo componente, o DateTimePicker. Com ele poderemos trabalhar com
Datas e Horas.

Criaremos uma pequena aplicao para que voc possa se familiarizar com este componente e
conhecer duas novas classes destinadas ao controle do Tempo que so a DateTime e
TimeSpan.

1. Inicie um novo projeto C# do tipo Windows Application.
2. Inclua os componentes DateTimePicker, Button e Label como mostra na ilustrao
abaixo:

Ilustrao 6 - Form exemplo
3. Altere a propriedade Name dos DateTimePicker1 e DateTimePicker2 para dtIni e
dtFim.
4. Altere a propriedade Text do Button1 para Diferenca.
5. D um duplo clique no boto Diferenca e digite o seguinte cdigo:

private void btnDiferenca_Click(object sender, System.EventArgs e)
{
DateTime dtini;
dtini = dataIni.Value;

DateTime dtfim;
dtfim = dataFim.Value;
Curso C# Mdulo II Carlos Vamberto pgina 11
Copyright | Curso de C# Mdulo II Windows Form Prof. Carlos Vamberto


TimeSpan ts = dtfim - dtini;

label1.Text=ts.Days.ToString() + " dias de diferena";
}

6. Execute o programa pressionando a tecla F5 e teste.

Perceba que o dtini e o dtfim no esto instanciados em suas declaraes, ou seja, no esto
usando o mtodo construtor da classe DateTime. Elas s vo ser instanciadas quando for
atribudas os valores iniciais.

A classe TimeSpan serve como intermediria para que possamos subtrair uma data da outra,
pois o DateTime de outras linguagens de programao na verdade uma derivao do tipo
double.

Captulo 6 CheckListBox, ComboBox, RadioButton,
MonthCalendar, ListBox e GroupBox

Como todo captulo, aqui, conheceremos alguns novos componentes como: CheckListBox (uma
juno de dois componentes o CheckBox e o ListBox); ComboBox, RadioButton,
MonthCalenda,ListBox e o GroupBox.

1. Inicie um novo projeto C# do tipo Windows Application.
2. Insira um CheckListBox
3. Altere a propriedade Name para chlIdiomas
4. Clique na propriedade Items e adicione as seguintes linhas

Ingls
Francs
Espanhol
Alemo
Japons
Outros

5. Insira um ComboBox no formulrio
6. Altere a propriedade Name para cmbEscolaridade
7. Clique na propriedade Items e adicione as seguintes linhas

No Formado
Tecnlogo
Bacharel
Latu Sensu
Mestrado
Doutorado
Ps Doutorado

8. Adicione um GroupBox no formulrio
9. Dentro dele adicione dois RadioButton
10. Altere a propriedade Name deles para radMasculino e radFeminino
11. Altere tambm a propriedade Text deles para Masculino e Feminino
12. Adicione um componente MonthCalendar no formulrio
13. Altere a propriedade Name para calNascimento
Curso C# Mdulo II Carlos Vamberto pgina 12
Copyright | Curso de C# Mdulo II Windows Form Prof. Carlos Vamberto

14. Insira no formulrio um ListBox
15. Altere a propriedade Name para lstResumo
16. Insira os Labels e Buttons, organize-os como mostrado na ilustrao que segue


Ilustrao 7 - Form gerador de Currculo Resumido

17. D um duplo clique no boto Sair e digite o seguinte cdigo

Application.Exit();

18. D um duplo clique no boto Gerar Resumo e digite o seguinte cdigo

// Limpando o ListBox
lstResumo.Items.Clear();

// Declarando as variveis
string linha;
int total = chlIdiomas.Items.Count;
int i;

// Trabalhando com CheckListBox
lstResumo.Items.Add("IDIOMAS");
lstResumo.Items.Add("------------------------");
for (i=0;i<total;i++)
{
if (chlIdiomas.GetItemCheckState(i) == CheckState.Checked)
{

linha = chlIdiomas.GetItemText(i) + " - " + chlIdiomas.Items[i].ToString();
lstResumo.Items.Add(linha);
}
}

// Trabalhando com ComboBox
lstResumo.Items.Add("");
lstResumo.Items.Add("ESCOLARIDADE");
lstResumo.Items.Add("------------------------");
linha = cmbEscolaridade.SelectedIndex.ToString() + " - " + cmbEscolaridade.Text;
lstResumo.Items.Add(linha);

// Trabalhando com RadioButton
lstResumo.Items.Add("");
lstResumo.Items.Add("GENERO");
Curso C# Mdulo II Carlos Vamberto pgina 13
Copyright | Curso de C# Mdulo II Windows Form Prof. Carlos Vamberto

lstResumo.Items.Add("------------------------");
if (radMasculino.Checked)
{
lstResumo.Items.Add("MASCULINO");
}
else
{
lstResumo.Items.Add("FEMININO");
}

// Trabalhando com MonthCalenda
lstResumo.Items.Add("");
lstResumo.Items.Add("DATA NASCIMENTO");
lstResumo.Items.Add("------------------------");
lstResumo.Items.Add(calNascimento.SelectionRange.Start.ToLongDateString());

Note que existe uma certa semelhana entre os componentes CheckListBox, ComboBox e
ListBox, todos eles tem a propriedade Items em comum.

No MonthCalenda veja que usamos a propriedade SelectionRange.Start para obter a data
selecionada. Lembrando que este componente tambm tem a propriedade SelectionRange.End
para definir.

Captulo 7 Trabalhando com as Caixas de Dilogo
Neste captulo conheceremos algumas das caixas de dilogo e como elas so invocadas em um
sistema, tambm perceberemos que a forma de trabalhar com elas so bem semelhantes.

Vamos localizar e adicionar os componentes:ToolStripContainer componente repositrio de
componentes Strip, MenuStrip (uma derivao da classe MainMenu do framework 1.1) dentro do
ToolStripContainer inserido e troque sua propriedade GripStyle para Visible. Construa o
seguinte menu:


Ilustrao 8 - Mine Editor
As opes do menu devem ter os seguintes nomes: mnuArquivo, mnuNovo, mnuAbrir,
mnuSalvar e mnuSair.

Insira um componente TextBox com a propriedade Multiline para True no centro do formulrio,
troque sua propriedade Name para txtTexto, e a propriedade Dock para Fill.

Curso C# Mdulo II Carlos Vamberto pgina 14
Copyright | Curso de C# Mdulo II Windows Form Prof. Carlos Vamberto


Coloque o seguinte cdigo no menu mnuSair:

private void mnuSair_Click(object sender, EventArgs e)
{
Application.Exit();
}

Coloque o seguinte cdigo no menu mnuNovo:

private void mnuNovo_Click(object sender, EventArgs e)
{
txtTexto.Clear();
}

Adicione o componente OpenFileDialog no formulrio, troque a propriedade name para
dlgAbrir. Na propriedade DefaultExt para txt, a propriedade Filter para Arquivo Texto
(*.txt)|*.txt, a propriedade InitialDirectory para c:\, na propriedade ScrollBars do
TextBox coloque Both.

Adicione SaveFileDialog e coloque o nome dlgSalvar.

Antes de voc implementar o cdigo para Abrir e Salvar coloque em uso o namespace de
entrada e sada System.IO.

using System.IO;

Coloque o seguinte cdigo no menu mnuAbrir:

private void mnuAbrir_Click(object sender, EventArgs e)
{
if (dlgAbrir.ShowDialog() == DialogResult.OK)
{
StreamReader sr = new StreamReader(dlgAbrir.FileName);
string sb;
sb = sr.ReadToEnd();
txtTexto.Text = sb;
}
}

Coloque o seguinte cdigo no menu mnuSalvar:

private void mnuSalvar_Click(object sender, EventArgs e)
{
if (dlgSalvar.ShowDialog() == DialogResult.OK)
{
StreamWriter sw = new StreamWriter(dlgSalvar.FileName);
sw.WriteLine(txtTexto.Text);
sw.Close();
}
}

Perceba que usamos instncias das classes StreamReader e StreamWrite para ler e gravar o
arquivo texto. Estas classes fazem parte do namespace System.IO.

Curso C# Mdulo II Carlos Vamberto pgina 15
Copyright | Curso de C# Mdulo II Windows Form Prof. Carlos Vamberto

Captulo 8 Trabalhando com formulrios

Uma das maiores expectativas de um programador que estar aprendendo uma nova linguagem
trabalhar com formulrios, pois eles faro parte de seus futuros sistemas. Para diminuir esta
expectativa e mostrar na prtica, vamos fazer um simples sistema que abrir formulrios SDI.

1. Inicie um novo projeto.
2. Troque a propriedade name do formulrio para frmPrincipal, e a propriedade Text
para Formulrio Principal.
3. Adicione dois botes no formulrio com as propriedades name para btnJanela e
btnModal.
4. Coloque na propriedade Text dos dois botes Abrir Janela e Abrir Modal.
5. V ao menu Project e escolha a opo Add Windows Form...
6. Digite o nome para o formulrio frmJanela


Ilustrao 9 - Janela de Adicionar Itens
7. Coloque na propriedade Text deste novo formulrio para Formulrio Janela.
8. Adicione um boto no centro com name para btnFechar e Text para Fechar
9. Clique duas vezes sobre o boto e digite o seguinte cdigo

private void btnFechar_Click(object sender, EventArgs e)
{
Close();
}

10. Atravs do menu Project adicione outro formulrio colocando o nome para frmModal.
11. Altere a propriedade Text para Formulrio Modal
12. Adicione um boto no centro com name para btnFechar e Text para Fechar
13. Clique duas vezes sobre o boto e digite o seguinte cdigo

private void btnFechar_Click(object sender, EventArgs e)
{
Close();
}


Curso C# Mdulo II Carlos Vamberto pgina 16
Copyright | Curso de C# Mdulo II Windows Form Prof. Carlos Vamberto


14. Atravs do Solution Explorer (Ctrl+W,S) retorne ao form1.
15. No boto Abrir Janela clique duas vezes e adicione o cdigo

private void btnJanela_Click(object sender, EventArgs e)
{
frmJanela janela = new frmJanela();
janela.Show();
}

16. No boto Abrir Modal clique duas vezes e adicione o cdigo

private void btnModal_Click(object sender, EventArgs e)
{
frmModal modal = new frmModal();
modal.ShowDialog();
}

17. Execute o programa pressionando F5 e observe o comportamentos dos formulrios
criados

Captulo 9 Trabalhando com formulrios MDI

Aqui aprenderemos a trabalhar com formulrios MDI, formulrios semelhantes aos documentos do
Word que voc abre vrios documentos dentro de sua aplicao.

A ideia escrever uma aplicao que trabalha como se fosse editor de texto com a possibilidade
de trabalhar com vrios textos abertos ao mesmo tempo.

Ento vamos a luta:

1. Inicie um novo projeto Windows Form
2. Troque o valor da propriedade name do Form1 para frmPai
3. Altere a propriedade IsMdiContainer para True
4. Adicione o componente MenuStrip no formlrio e coloque os seguintes menus e
adicione uma varivel do tipo int e de nome numForm


Ilustrao 10 - Janela do Formulrio com o Menu em exposio

mnuArquivo
mnuNovo
mnuAbrir
mnuSalvar
mnuSair

Curso C# Mdulo II Carlos Vamberto pgina 17
Copyright | Curso de C# Mdulo II Windows Form Prof. Carlos Vamberto




5. Clique duas vezes no menu Sair e digite o seguinte cdigo:

private void mnuSair_Click(object sender, EventArgs e)
{
Application.Exit();
}

6. Insira um novo formulrio no projeto atravs do menu Project Add Windows Form
7. Coloque o nome do formulrio para frmFilho
8. Procure o mtodo construtor e adicione outro mtodo construtror e as variveis
arquivo e salvo com o seguinte cdigo e adicione um TextBox no Form e coloque o
nome txtTexto propriedade Dock para Fill e Multline para True.

public partial class frmFilho : Form
{
string arquivo = "";
bool salvo = false;
public frmFilho()
{
InitializeComponent();
}

public frmFilho(string texto)
{
InitializeComponent();
txtTexto.Text = texto;
this.setArquivo(texto);
}
}

9. Adicione os seguintes mtodos

public void setSalvo(bool set)
{
salvo = set;
}
public void setArquivo(string arq)
{
arquivo = arq;
}
public bool getSalvo()
{
return salvo;
}
public string getArquivo()
{
return arquivo;
}
private void txtTexto_TextChanged(object sender, EventArgs e)
{
setSalvo(false);
}
public string getTexto()
{
return txtTexto.Text;
}
public void setTitulo(string texto)
{
Text = texto;
Curso C# Mdulo II Carlos Vamberto pgina 18
Copyright | Curso de C# Mdulo II Windows Form Prof. Carlos Vamberto

}



10. Retorne ao formulrio frmPai pressione F7 para abrir o cdigo e adicione na primeira
linha using System.IO; e coloque no evento do click do menu mnuAbrir e digitar o
seguinte cdigo: Adicionar OpenFileDialog (dlgAbrir) e SaveFileDialog (dlgSalvar).

private void mnuAbrir_Click(object sender, EventArgs e)
{
if (dlgAbrir.ShowDialog() == DialogResult.OK)
{
try
{
StreamReader sr = new StreamReader(dlgAbrir.FileName);
string sb;
sb = sr.ReadToEnd();

frmFilho doc = new frmFilho(sb);
doc.setArquivo(dlgAbrir.FileName);
doc.setSalvo(true);
doc.MdiParent = this;
doc.setTitulo(dlgAbrir.FileName);
doc.Show();
}
catch (Exception ex)
{
MessageBox.Show("Erro ao tentar abrir o arquivo:\n---------\n"
+ ex.ToString(),"Erro",MessageBoxButtons.OK,MessageBoxIcon.Error);
}
}
}

11. Faa o mesmo para o menu mnuSalvar com o seguinte cdigo:

private void mnuSalvar_Click(object sender, EventArgs e)
{

frmFilho frm = (frmFilho)this.ActiveMdiChild;
string arq = frm.getArquivo();
string texto = frm.getTexto();
bool salvo = frm.getSalvo();

if ((arq.Length > 1) && (salvo == false))
{
StreamWriter sw = new StreamWriter(arq);
frm.setSalvo(true);
sw.WriteLine(texto);
sw.Close();
}
else if ((arq.Length <=0))
{
if (dlgSalvar.ShowDialog() == DialogResult.OK)
{
arq = dlgSalvar.FileName;
StreamWriter sw = new StreamWriter(arq);
sw.WriteLine(texto);
sw.Close();
frm.setArquivo(arq);
frm.setSalvo(true);
frm.setTitulo(dlgSalvar.FileName);
}
}
Curso C# Mdulo II Carlos Vamberto pgina 19
Copyright | Curso de C# Mdulo II Windows Form Prof. Carlos Vamberto

}

12. Faa o mesmo para o menu mnuNovo com o seguinte cdigo

private void mnuNovo_Click(object sender, EventArgs e)
{
numForm++;
frmFilho doc = new frmFilho();
doc.MdiParent = this;
doc.Text = "Documento" + numForm.ToString("000");
doc.Show();
}

Captulo 10 Trabalhando com Banco de Dados

O ADO.NET o nome da biblioteca de classes de acesso a dados desenvolvida pela Microsoft, e
como ela faz parte do Microsoft .NET Framework poderemos acess-la a partir de qualquer
linguagem que faz suporte a plataforma .NET Framework. Suas classes esto definidas abaixo
do namespace System.Data.

No Mdulo 1 j mencionamos as classes de acesso a dados, aqui iremos enfatizar o uso dessas
classes em componentes visuais e melhorar os conceitos para melhor entendimento.

As vantagens de se trabalhar com ADO.NET so: possibilidade de trabalhar com Banco de Dados
desconectados, usa o padro XML como forma de armazenamento dos dados, DataSet tipados.

Podemos trabalhar com os dados usando o ADO.NET de forma conectada e desconectada. As
Data Classes so classes de objetos que representam dados em memria, um repositrio de
dados. As classes do Data Classes so: DataSet, DataTable, DataRow, DataColumn,
DataRelation, etc.

Uma representao do acesso a estas classes



Tambm temos as classes de acesso a dados conectados que so chamados de Managed
Providers que fazem acesso direto ao bando de dados obtendo e gravando doados.

As classes do Managed Providers dependem diretamente do provider do bando de dados
desejado, exemplo: MS SQL, Oracle, Access, InterBase, PostgreeSQL, etc. Mas todos os providers
fazem implementao das interfaces IDbConnection, IDbCommand, IDataReader. No
ADO.NET existem quatro Managed Providers que so para SQL Server, Oracle, OLEDB e ODBC.

Curso C# Mdulo II Carlos Vamberto pgina 20
Copyright | Curso de C# Mdulo II Windows Form Prof. Carlos Vamberto

IDbConnection Atravs de uma string de conexo com o Banco de Dados e com os mtodos
Open() e Close(), o objeto realiza a conexo com um banco de dados fsico fazendo controle de
transaes e cach de dados.
IDbCommand Utilizando uma Connection realiza consultas ao banco de dados usando os
mtodos ExecuteReader(dispara uma consulta retornando um objeto DataReader),
ExecuteNonQuery(dispara um comando de insero, alterao ou excluso no banco de dados
retornando apenas o numero de registros afetados) e ExecuteEscalar (executa uma consulta
mas s retorna uma informao simples e no um conjunto de dados).

IDbDataReader Esta uma interface de uma classe que faz acesso ao banco de dados
conectado utilizando um cursor com leitura somente para frente fazendo assim um acesso de alta
performance.

A partir de agora vamos fazer alguns exerccios na prtica para melhorar at agora comentada, e
como vamos trabalhar com banco de dados vamos aproveitar que na instalao do Visual Studio
.NET que faz a instalao do SQL Server Express Edition (verso gratuita deste banco de dados da
Microsoft).

Primeiro vamos configura o Visual Studio para trabalhar com este banco de dados.

1. Abra o Visual Studio
2. Verifique se o Server Explorer est visvel caso contrrio, pressione Ctrl+W,L
3. Clique com o boto direito do mouse sobre o Data Connections e escolha a opo
Create New SQL Server Database


Ilustrao 11 - Janela de Criao de Novo Banco de Dados
4. Coloque como nome do Banco de Dados Agenda
5. O padro do SQL Server Express Edition a autenticao do usurio baseado no
Sistema Operacional, ento deixe a opo Use Windows Authentication ativada
6. E clique em OK
Curso C# Mdulo II Carlos Vamberto pgina 21
Copyright | Curso de C# Mdulo II Windows Form Prof. Carlos Vamberto


Ilustrao 12 - Janela do Server Explorer com o Banco criado
7. Agora vamos criar as tabelas
8. Clique como boto direto do mouse sobre Tables e escolha a opo Add New Table
9. Construa a seguinte estrutura:


Curso C# Mdulo II Carlos Vamberto pgina 22
Copyright | Curso de C# Mdulo II Windows Form Prof. Carlos Vamberto

10. Perceba que o campo id tem a pripriedade da coluna Identity Spacification igual a
yes
11. Ao terminar, clique no boto Save da barra de ferramenta e coloque o nome da tabela
como Pessoa
12. Clique com o boto direito da tabela Pessoa criada que est sendo agora visualizada
dentro do Server Explorer e escolha a opo Show Table Data
13. Ao aparecer a tabela em forma de Grid, preencha com pelo menos 3 registros.

14. Aps o cadastro desses registros, vamos a aplicao
15. Selecione o Form1
16. Adicione nele o componente DataGridView
17. No canto direito dele possui uma seta para direita clique nela e veja que possui
algumas propriedades padres


Curso C# Mdulo II Carlos Vamberto pgina 23
Copyright | Curso de C# Mdulo II Windows Form Prof. Carlos Vamberto

18. Clique na caixa DropDown do Choose Data Source
19. Escolha a opo Add Project Data Source
20. Quando aparecer a janela Data Source Configuration Wizart escolha Database



21. Ao aparecer a janela abaixo clique em Next novamente



22. Nesta prxima janela voc ter que definir o nome do Connection String a serado.

Curso C# Mdulo II Carlos Vamberto pgina 24
Copyright | Curso de C# Mdulo II Windows Form Prof. Carlos Vamberto



23. Selecione a tabela que ser exibida no Grid



24. Veja o resultado final depois de ter clicado no boto Finish

Curso C# Mdulo II Carlos Vamberto pgina 25
Copyright | Curso de C# Mdulo II Windows Form Prof. Carlos Vamberto



Perceba que na parte inferior da janela tem 3 componentes no visuais inseridos, estes
componentes so: agendaDataSet (repositrio dos dados desconectados),
pessoalBindingSource (encapsula o Data Source para o formulrio), pessoaTableAdapter
(DataAfapter que preenche o DataSet).

Fcil!?, fizemos tudo isto e nem digitamos uma linha de cdigo, pode rodar a aplicao para v
como ficou.


Para melhorar ainda mais a aplicao, adicione um boto no formulrio clique dias vezes nele e
adicione o seguinte cdigo:
Curso C# Mdulo II Carlos Vamberto pgina 26
Copyright | Curso de C# Mdulo II Windows Form Prof. Carlos Vamberto


pessoaTableAdapter.Update(agendaDataSet);

Com este cdigo, todos os registros trabalhados offline, ou seja, desconectados, vo ser
atualizados no Banco de Dados automaticamente independente de sua quantidade, a atualizao
feito por lote de dados. Ele

Veja como o ADO.NET do novo .NET Framework da Microsoft timo de se trabalhar.

Captulo 11 Fazendo conexes na mo

Bem, a proposta agora fazer a mesma aplicao no utilizando dos artifcios dos componentes,
iremos faz-lo programavelmente linha a linha de cdigo.

Para isto, siga os seguintes passos:

1. Inicie um novo Projeto do tipo Winforms
2. Agora inclua no formulrio o componente DataGridView
3. Pressione F7 para entrar no cdigo fonte
4. Adicione o seguinte cdigo nos usings das classes e adicione os objetos
SqlConnections e DataSet como mostrado abaixo

namespace Capitulo11
{
public partial class Form1 : Form
{

public SqlConnection conn = new SqlConnection(
"Data Source=TI-09\\SQLEXPRESS;
+Initial Catalog=Agenda;Integrated Security=True;Pooling=False");
public DataSet dsAgenda = new DataSet();

5. Crie um mtodo preencheCampos com o seguinte cdigo

public void preencheCampos()
{
try
{
conn.Open();

SqlDataAdapter da = new SqlDataAdapter("select * from Pessoa", conn);
da.Fill(dsAgenda, "Pessoa");
dataGridView1.DataSource = dsAgenda;
dataGridView1.DataMember = "Pessoa";

conn.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}

6. Estando o formulrio selecionado procure o evento Load que se encontra na janela
Properties atravs do boto Events onde mostra a ilustrao abaixo

Curso C# Mdulo II Carlos Vamberto pgina 27
Copyright | Curso de C# Mdulo II Windows Form Prof. Carlos Vamberto



7. Digite o seguinte cdigo

private void Form1_Load(object sender, EventArgs e)
{
preencheCampos();
}

8. Adicione um boto no formulrio e digite o seguinte cdigo no seu evento OnClick

private void button1_Click(object sender, EventArgs e)
{
try
{

SqlDataAdapter da = new SqlDataAdapter("select id, nome, fone, obs from Pessoa",
conn);
SqlCommandBuilder builder = new SqlCommandBuilder();
builder.DataAdapter = da;
builder.ConflictOption = ConflictOption.OverwriteChanges;
da.Update(dsAgenda, "Pessoa");
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}

9. A aplicao est pronta

Bem, esta pequena aplicao faz com o que se trabalhe com DataSet desconectados e depois de
todas as alteraes, excluses e inseres realizadas na memria, ele executa estas operaes
fisicamente em forma de lote. Perceba que utilizamos um objeto da classe SqlCommandBuilder
para a construo das strings de insert, update e delete para realizar as alteraes quando
forem necessrios.

Captulo 12 Trabalhando com Stored Procedures

Nota - O propsito deste captulo no ensinar a construir uma Stored Procedure e sim
mostrar como funciona, mas interessante para o programador, realizar um estudo mais
aprofundado sobre Stored Procedures.

Vamos primeiro fazer uma Store Procedure no banco de dados seguindo os seguinte passos:

1. Na janela do Server Explorere v em Stored Procedured
2. Clique com o boto direito do mouse e escolha Add New Stored Procedure
3. Digite o seguinte cdigo

-- =============================================
-- Author: <CARLOS VAMBERTO>
-- Create date: <02/10/2006>
Curso C# Mdulo II Carlos Vamberto pgina 28
Copyright | Curso de C# Mdulo II Windows Form Prof. Carlos Vamberto

-- Description: <INCLUSO DE DADOS EM PESSOA>
-- =============================================
CREATE PROCEDURE SP_PESSOA_INCLUIR
@NOME NVARCHAR(50),
@FONE NVARCHAR(20),
@OBS NVARCHAR(50),
@CHAVE INT OUTPUT
AS
BEGIN
INSERT INTO PESSOA (NOME, FONE, OBS) VALUES (@NOME, @FONE, @OBS);
SET @CHAVE = @@IDENTITY
RETURN @CHAVE
END

4. Depois clique em salvar

Pronto, a Stored Procedure est criada, perceba que alm de inserir dados na tabela, a Stored
Procedure retorna o valor do campo ID que autoincremental(identity) aps a incluso, agora
vamos fazer a aplicao que a usa esta Stored Procedure para inserir dados.

1. Inicie um novo projeto
2. Insira nele os componentes DataGridView, Button, Label e TextBox como mostrado
abaixo


3. Pressione F7 para abrir a janela de cdigo do formulrio e acrescente o uso ao
namespace System.Data.SqlClient e os seguintes objetos

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace Capitulo12
{
public partial class Form1 : Form
{

public SqlConnection conn = new SqlConnection(
Curso C# Mdulo II Carlos Vamberto pgina 29
Copyright | Curso de C# Mdulo II Windows Form Prof. Carlos Vamberto

"Data Source=TI-09\\SQLEXPRESS;Initial Catalog=Agenda;Integrated+
"Security=True;Pooling=False");
public DataSet dsAgenda = new DataSet();


4. Acrescente o mtodo preencheCampos como mostrado na cdigo abaixo

public void preencheCampos()
{

dsAgenda.Clear();
try
{
conn.Close();
conn.Open();

SqlDataAdapter da = new SqlDataAdapter("select * from Pessoa", conn);
da.Fill(dsAgenda, "Pessoa");
grdPessoa.DataSource = dsAgenda;
grdPessoa.DataMember = "Pessoa";

conn.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}

5. Os componentes podem estarem dispostos da seguinte forma: grdPessoa,
btnCarregar, btnIncluir, txtNome, txtFone e txtObs
6. Clique duas vezes sobre o boto btnCarregar e digite o seguinte cdigo

private void Form1_Load(object sender, EventArgs e)
{
preencheCampos();
}

7. Clique duas vezes no boto btnIncluir e digite o seguinte cdigo

private void btnIncluir_Click(object sender, EventArgs e)
{
try
{
SqlCommand command = new SqlCommand();
command.Connection = conn;
command.CommandText = "SP_PESSOA_INCLUIR";
command.CommandType = CommandType.StoredProcedure;

SqlParameter para1 = new SqlParameter();
para1.ParameterName = "@Nome";
para1.SqlDbType = SqlDbType.NVarChar;
para1.Direction = ParameterDirection.Input;
para1.Value = txtNome.Text;

SqlParameter para2 = new SqlParameter();
para2.ParameterName = "@FONE";
para2.SqlDbType = SqlDbType.NVarChar;
para2.Direction = ParameterDirection.Input;
para2.Value = txtFone.Text;

SqlParameter para3 = new SqlParameter();
Curso C# Mdulo II Carlos Vamberto pgina 30
Copyright | Curso de C# Mdulo II Windows Form Prof. Carlos Vamberto

para3.ParameterName = "@OBS";
para3.SqlDbType = SqlDbType.NVarChar;
para3.Direction = ParameterDirection.Input;
para3.Value = txtObs.Text;

SqlParameter para4 = new SqlParameter();
para4.Direction = ParameterDirection.Output;
para4.SqlDbType = SqlDbType.Int;
para4.ParameterName = "@CHAVE";

command.Parameters.Add(para1);
command.Parameters.Add(para2);
command.Parameters.Add(para3);
command.Parameters.Add(para4);

conn.Open();
command.Prepare();
command.ExecuteNonQuery();

string mensagem = command.Parameters["@CHAVE"].Value.ToString();
MessageBox.Show("ID = " + mensagem);

preencheCampos();
conn.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}

Captulo 13 Banco de Dados em XML

Uma forma de se trabalhar totalmente local e independente de Servidor de Banco de Dados
trabalhar com arquivos, e por que no se trabalhar com arquivos do tipo XML?

XML (eXtensible Markup Language) uma recomendao da W3C para gerar linguagens de
marcao para necessidades especiais.

XML um subtipo de SGML (Standard Generalized Markup Language - Linguagem Padronizada de
Marcao Generica) capaz de descrever diversos tipos de dados. Seu propsito principal a
facilidade de compartilhamento de informaes atravs da Internet. Linguagens baseadas em
XML: XHTML, RDF, SMIL, MathML, NCL, XBRL, XSIL e SVG. O SVG por exemplo um formato
grfico vetorial (scalable vectorial ghapics).

Ns aqui iremos usar o XML como repositrio de dados local e ao mesmo tempo iremos conhecer
e aprimorar o conhecimento com DataSet, DataTable e DataRow.


1. Inicie um novo projeto
2. Insira no formulrio 4 (quatro) botes
3. Coloque os nomes btnGerar, btnCarregar, btnSalvar e btnVisualizar
4. Altere tambm as propriedades Text dos botes
5. Insira um DataGridView no formulrio

Curso C# Mdulo II Carlos Vamberto pgina 31
Copyright | Curso de C# Mdulo II Windows Form Prof. Carlos Vamberto



6. Clique duas vezes no boto Gerar e digite o seguinte cdigo

private void btnGerar_Click(object sender, EventArgs e)
{
// Cliando o DataSet
ds = new DataSet("MeuDataSet");

//Criando a Tabela
DataTable dt = new DataTable("Clientes");

//Criando as colunas da tabela
DataColumn dcCodigo = new DataColumn("Codigo");
dcCodigo.Caption = "Cdigo";
dcCodigo.DataType = Type.GetType("System.Int32");
dcCodigo.AutoIncrementSeed = 1000;
dcCodigo.AutoIncrementStep = 1;
dcCodigo.AutoIncrement = true;
dcCodigo.AllowDBNull = false;
dcCodigo.Unique = true;

DataColumn dcNome = new DataColumn("Nome");
dcNome.Caption = "Nome";
dcNome.DataType = Type.GetType("System.String");

DataColumn dcAnoNasc = new DataColumn("AnoNasc");
dcAnoNasc.Caption = "Ano Nasc";
dcAnoNasc.DataType = Type.GetType("System.Int32");

DataColumn dcAnoAtual = new DataColumn("AnoAtual");
dcAnoAtual.Caption = "AnoAtual";
dcAnoAtual.DataType = Type.GetType("System.Int32");
dcAnoAtual.DefaultValue = 2006;
dcAnoAtual.ReadOnly = true;

DataColumn dcIdade = new DataColumn("Idade");
dcIdade.Caption = "Idade";
dcIdade.DataType = Type.GetType("System.Int32");
Curso C# Mdulo II Carlos Vamberto pgina 32
Copyright | Curso de C# Mdulo II Windows Form Prof. Carlos Vamberto

dcIdade.Expression = "AnoAtual - AnoNasc";
dcIdade.ReadOnly = true;

dt.Columns.Add(dcCodigo);
dt.Columns.Add(dcNome);
dt.Columns.Add(dcAnoNasc);
dt.Columns.Add(dcAnoAtual);
dt.Columns.Add(dcIdade);

//Adicionando registros
DataRow row;
row = dt.NewRow();
row["Codigo"] = 1;
row["Nome"] = "Carlos";
row["AnoNasc"] = 1973;
dt.Rows.Add(row);

row = dt.NewRow();
row["Codigo"] = 2;
row["Nome"] = "Islo";
row["AnoNasc"] = 1980;
dt.Rows.Add(row);

row = dt.NewRow();
row["Codigo"] = 3;
row["Nome"] = "Andr";
row["AnoNasc"] = 1994;
dt.Rows.Add(row);

row = dt.NewRow();
row["Codigo"] = 4;
row["Nome"] = "Bernardino";
row["AnoNasc"] = 1931;
dt.Rows.Add(row);

ds.Tables.Add(dt);

dataGridView1.DataSource = ds;
dataGridView1.DataMember = "Clientes";
}

7. Clique duas vezes sobre o boto Carregar e digite o cdigo

private void btnCarregar_Click(object sender, EventArgs e)
{
DataSet ds = new DataSet("MeuDataSet");
ds.ReadXml("arquivo.xml");
ds.ReadXmlSchema("arquivo.xsl");
dataGridView1.DataSource = ds;
dataGridView1.DataMember = "ClienteS";
}

8. Clique duas vezes sobre o boto Salvar e digite o cdigo

private void btnGravar_Click(object sender, EventArgs e)
{
ds.WriteXml("arquivo.xml");
ds.WriteXmlSchema("arquivo.xsl");
}




Curso C# Mdulo II Carlos Vamberto pgina 33
Copyright | Curso de C# Mdulo II Windows Form Prof. Carlos Vamberto



9. Clique duas vezes sobre o boto Visualizar e digite o cdigo

private void btnVisualiza_Click(object sender, EventArgs e)
{
MessageBox.Show(ds.GetXml());
MessageBox.Show(ds.GetXmlSchema());
}


Execute o programa e teste-o.

Para esclarecimento, os arquivos XML e XSL sero armazenados dentro da mesma pasta onde se
encontra o executvel. Para ser gravado em outro local deve se colocar o caminho inteiro de onde
ser armazenado.


Captulo 14 Trabalhando com WebService
O que WebService?
Bem, ns j conhecemos o que so classes e seus mtodos, ento iremos imaginar agora estes
mtodos sendo dispostos para acesso atravs da internet. Voc conseguiu imaginar isto? O nome
disto que voc imaginou se chama WebMethods. Sua forma de acesso semelhante a uma
chamada de pgina web. O WebService se propaga sobre o protocolo SOAP.

No pense que difcil fazer um WebService usando o Visual Studio.NET 2005. Ele nos d toda a
estrutura e Wizards para desenvolver este tipo de aplicao.

Vamos ver na prtica.

1. Inicie um novo projeto usando o menu File New WebSite ASP.NET
WebService e no nome do WebService corra at o final, retire o nome WebSite1 e
troque para MeuWS
2. Observe que a classe Service contida no arquivo Service.asmx est no projeto e
aberto o documento



3. Perceba tambm que no cdigo da classe existe um WebMethod chamado
HelloWorld() que inserido automaticamente quando se cria um WebService
4. Vamos adicionar uma nova classe do tipo WebService no projeto
Curso C# Mdulo II Carlos Vamberto pgina 34
Copyright | Curso de C# Mdulo II Windows Form Prof. Carlos Vamberto

5. Clique com o boto direito sobre o projeto C:\...MeuWS\ e escolha a opo Add New
Item
6. Localize a opo WebService e renomeie o arquivo para Cidade.asmx
7. Adicione o seguinte cdigo

[WebMethod(Description = "Retorna uma lista de cidades vlidas do Amazonas")]
public DataSet GetCidadesAmazonas()
{
DataSet ds = new DataSet("MeusDados");
DataTable dt = new DataTable("Cidades");

DataColumn dc1 = new DataColumn("Codigo");
dt.Columns.Add(dc1);

DataColumn dc2 = new DataColumn("Cidade");
dt.Columns.Add(dc2);

DataRow dr;
dr = dt.NewRow();
dr["Codigo"] = "MAO";
dr["Cidade"] = "Manaus";
dt.Rows.Add(dr);

dr = dt.NewRow();
dr["Codigo"] = "PAR";
dr["Cidade"] = "Parintins";
dt.Rows.Add(dr);

dr = dt.NewRow();
dr["Codigo"] = "CDJ";
dr["Cidade"] = "Codajs";
dt.Rows.Add(dr);

ds.Tables.Add(dt);

return ds;
}

8. Pressione F5 para execultar o teste do WebService e perceba o endereo e porta para
onde foi colocado o servio, no meu caso foi http://localhost:1722/MeuWS



Curso C# Mdulo II Carlos Vamberto pgina 35
Copyright | Curso de C# Mdulo II Windows Form Prof. Carlos Vamberto



9. Clique no link GetCidadesAmazonas
10. Clique no invoke para ver o retorno e este aparecer em XML



Curso C# Mdulo II Carlos Vamberto pgina 36
Copyright | Curso de C# Mdulo II Windows Form Prof. Carlos Vamberto


Agora vamos criar uma aplicao para consumir este WebService e para isto, siga os passos
abaixo:

1. Abra outro Visual Studio 2005
2. Inicie um novo projeto Windows Form
3. Na janela Solution Explorer clique com o boto direito do mouse e escolha a opo
Add Web Reference
4. Ao abrir a janela, digite http://localhost:7122/MeuWS/Cidade.asmx



5. Adicione um Button no formulrio e um DataGridView
6. Clique duas vezes no boto e digite o cdigo

private void button1_Click(object sender, EventArgs e)
{
localhost.Cidade cidade = new Capitulo14.localhost.Cidade();
DataSet ds = new DataSet();
ds = cidade.GetCidadesAmazonas();

dataGridView1.DataSource = ds;
dataGridView1.DataMember = "Cidades";
}

Rode a aplicao e veja como ela se comporta.

OBS: Os WebServices so independente de plataforma, ou seja, o WebService pode ser feito no
.NET e ser consumido no Java e vice versa.








Curso C# Mdulo II Carlos Vamberto pgina 37
Copyright | Curso de C# Mdulo II Windows Form Prof. Carlos Vamberto





Curso de Programao em Visual Studio 2010 Environment (Ambiente)

1 Aula
Introduo a IDE do Visual Studio 2005
Criando Solues e Projetos
Trabalhando com Componentes
2 Aula
Caixas de Dilogos
Formulrios SDI
Formulrios MDI
3 Aula
Classe de Acesso a Dados (Providers)
Trabalhando com Oracle (Oracle Client)
4 Aula
Construindo Classes de Acesso a Dados
Data Bindings
5 Aula
Trabalhando com Banco de Dados desconectados
Trabalhando com Store Procedure
6 Aula
Banco de Dados em XML
Criando WebService
Consumindo WebService