ASP Net, Guia Pratico

Embed Size (px)

Citation preview

Delphi 2005 Delphi.Net

Visual Studio 2005 C#

Fbio Jos de Gondra Ramos Pgina 1 de 60

ndice Capitulo I Definies......................................................................................................2 Capitulo II O ASP.NET..................................................................................................4 Introduo.....................................................................................................................4 ASP.NET, HTML, C# e DELPHI.NET ......................................................................4 Operadores de atribuio, comparao e lgicos.........................................................5 Operadores de aritmticos............................................................................................5 Operadores de incremento e decremento......................................................................6 Contadores....................................................................................................................6 Tipos/Variveis.............................................................................................................6 Tipos Vetores................................................................................................................6 Capitulo III Estruturas lgicas........................................................................................7 Estruturas .....................................................................................................................7 Estrutura de bloco.........................................................................................................7 Estrutura de deciso simples ........................................................................................7 Estrutura de deciso multipla ......................................................................................7 Estruturas de repetio..................................................................................................8 Capitulo IV Instalao do Internet Information Server..................................................8 Instalao de IIS em Windows XP profissional...........................................................8 Acessar ao servidor web ..............................................................................................9 Ativando e Desativando o IIS em Windows XP profissional....................................10 Capitulo V Escolhendo uma ferramenta.......................................................................12 Apresentao do Delphi 2005.....................................................................................12 Escolhendo uma linguagem intermediria.................................................................13 Apresentao do Visual Studio 2005...............................................................................15 Escolhendo uma linguagem intermediria.................................................................15 Capitulo VII Conhecendo uma IL................................................................................17 A pgina de cdigos C# (Codificao para ferramenta DELPHI 2005). ..................17 A pgina de cdigos Delphi.NET (Codificao para ferramenta DELPHI 2005). . . .18 A pgina de cdigos C# (Codificao para ferramenta VISUAL STUDIO 2005). . .19 Projeto 01 Conhecendo objetos...............................................................................20 Projeto 02 Conhecendo objetos...............................................................................21 Projeto 03 Conhecendo objetos...............................................................................22 Projeto 04 Conhecendo objetos...............................................................................24 Projeto 05 Conhecendo objetos...............................................................................25 Capitulo VII Trabalhando com estruturas....................................................................26 Projeto 06 Tomando uma deciso simples..............................................................26 Projeto 07 Permitindo ou negando acesso a uma pgina.........................................28 Projeto 08 Montando um menu...............................................................................31 Projeto 09 Ampliando uma imagem........................................................................35 Capitulo VIII Trabalhando com bases de dados...........................................................39 Projeto 11 Testando a existncia e a senha de um usurio .....................................43 Projeto 12 Um menu Animado! ..............................................................................48 Projeto 13 Incluindo, excluindo e alterando dados em uma tabela Mtodo I Utilizando o Borland Data Provider............................................................................52 Projeto 14 Incluindo, excluindo e alterando dados em uma tabela Mtodo II Utilizando Data Components.......................................................................................55

Delphi 2005 Delphi.Net

Visual Studio 2005 C#

Fbio Jos de Gondra Ramos Pgina 2 de 60

Capitulo I Definies1. Sistema Operacional Conjunto de pequenos softwares capazes de controlar as diversas funes de um hardware. Exemplos: WINDOWS, LINUX, DOS, UNIX... etc 2. Linguagem Conjunto de cdigos capazes de descrever uma ao a ser realizada por um processador ou sistema computacional. 3. Aplicaes Todo desenvolvimento baseado em uma linguagem desenvolvido para um nico fim.

a) Aplicaes ASP.NET: Aplicaes baseadas em HTML dinmico gerados atravs deconsultas a Bases de Dados armazenados em servidores.

b) Aplicaes Web Services: Aplicaes com procedimento remoto desenvolvidas parainternet, utilizando XML como mensagem de comunicao e HTTP ou HTTPs como meio de comunicao.

c) Aplicaes Console: Aplicaes que no necessitam de interface grfica ouinteratividade com o usurio, este tipo de aplicao roda sob o comando do sistema operacional. 4. CGI (Common Gatway Interface) Tecnologia da Web onde um servidor recebe solicitaes em HTML, executa os processos necessrios e devolve aos clientes novamente no formato HTML;

5. 6.

.NET Tecnologia da Microsoft para desenvolvimentos de Web Services; CLR (Common Language Runtime) Ambiente de tempo de execuo que fornece os servios necessrios a todas as aplicaes .NET (compilao, gerenciamento de memria e garbage collection); 7. Assemblies Comandos compilados para assembler disponveis na web para utilizao em CLR; 8. Biblioteca de classes Conjunto de assemblies distribudos em classes de acordo com suas funcionalidades; 9. ASP.NET (Active Server Pages) Tecnologia da Microsoft baseada em servidor que permite desenvolvimentos de pginas Web dinmicas e interativas; 10. ADO.NET (Activex Data Object) Tecnologia .Net que permite aos desenvolvedores criar aplicaes para vrias origens de dados; 11. VCL for .NET (Visual Component Library) Tecnologia Borland que permite aos desenvolvedores criar aplicaes Web integrando as tecnologias ADO.NET e ASP.NET; 12. Web Services

Delphi 2005 Delphi.Net

Visual Studio 2005 C#

Fbio Jos de Gondra Ramos Pgina 3 de 60

So chamadas de procedimento remoto feitas na internet utilizando XML como formato de mensagem de comunicao e http/HTTPs como meio de comunicao; 13. RPC (Remote Procedure Calls) Chamada de Procedimento Remoto (internet) atravs de um protocolo de comunicao; 14. Protocolo http (HiperText Markup Language) Linguagem de programao usada para criar uma pgina Web 15. XML (Extensible Markup Languagem) Linguagem de formato flexvel baseada em texto para publicao por meios eletrnicos, utilizada na passagem de mensagens entre clientes do Web Service; 16. SOAP (Simple Object Access Protocol) Protocolo para Web Service baseado no padro XML utilizado para invocar chamadas de RPC; 17. WSDL (Web Service Description Language) Linguagem baseada em XML utilizada para descrever os recursos de um Web Service; 18. UDDI (Universal Description, Discovery and Integration) um registro pblico para armazenamento de informaes sobre e para publicao de Web Services; 19. Servidor Equipamento onde esta armazenada uma soluo de Web Service; 20. Cliente Cada um dos usurios de uma soluo de Web Service; 21. Plataforma (Windows, Linux, etc) Base estrutural sobre a qual ser aplicada a soluo de Web Service; 22. Ferramenta de desenvolvimento (Delphi, Visual Studio) Aplicativo utilizado para desenvolvimento da soluo de Web Service;

23.

Linguagem Intermediria IL (Delphi.NET(pascal), C#, Visual Basic) a linguagem utilizada como fonte para o desenvolvimento de Web Service. A microsoft resolve denominar as ILs como MSIL (Microsoft Intermediate Language); Observaes:

d)

O .NET suportado por mais de 20 linguagens;

e) Existem muitos componentes reutilizveis de terceiros disponveis na internet, pesquise no google .NET Components

f)

O W3C (World Wide Consortium) uma agncia reguladora sem fins lucrativos, onde se encontram especificaes, diretrizes, softwares e ferramentas relevantes ao uso da World Wide Web (www.w3c.org). g) Outras tecnologias WEB:

JSP (Java Server Page); PHP (Personal Home Page); Cold Fusion; ISAPI; NISAPI; IDC/HTX.

Delphi 2005 Delphi.Net

Visual Studio 2005 C#

Fbio Jos de Gondra Ramos Pgina 4 de 60

Capitulo II O ASP.NETIntroduo ASP.NET (Active Server Pages.NET) compe a forma de se criar pginas da Internet utilizando-se a plataforma .NET. Esta plataforma prov uma srie de servios, atravs de classes existentes no Microsoft .NET Framework. Com ele, possvel a construo no apenas de pginas Web, mas tambm, de aplicativos desktop, aplicativos para dispositivos mveis, objetos de negcios, web services, etc. Pode-se dizer que a plataforma .NET similar plataforma Java, que tambm oferece diversos servios. Dentre suas principais diferenas, destacam-se as seguintes caractersticas: a plataforma Java utiliza a linguagem de programao Java e seus aplicativos so hbridos (compilados e interpretados, caracterstica que permite que os aplicativos sejam multi-plataforma); enquanto que em .NET, pode-se utilizar Visual Basic.NET, C++, JScript.NET, Delphi.NET ou C#, e os aplicativos gerados so compilados em uma linguagem chamada MSIL (Microsoft Intermediate Language). No caso das pginas ASP.NET, sua compilao realizada no momento em que elas so chamadas pela primeira vez atravs do browser, que apresenta o contedo final em HTML (Hypertext Markup Language). A execuo de pginas ASP.NET requer a utilizao do IIS (Internet Information Server), alm da instalao do .NET Framework SDK. As pginas ASP.NET podem ser escritas utilizando-se editores de textos planos, tal como Bloco de Notas e Vi. Porm, existem vrias ferramentas que auxiliam o desenvolvimento de pginas ASP.NET. Algumas das ferramentas de maior destaque so: - Microsoft ASP.NET Web Matrix - um software especfico para construo de aplicativos para a Web que utilizam a plataforma .NET. bastante leve (1,3 Mb), apesar de prover muitos recursos de desenvolvimento. uma ferramenta gratuita, podendo ser baixada em http://www.asp.net/webmatrix/. - Macromedia Dreamweaver MX seguindo a tradio de suas verses anteriores, este software suporta vrias tecnologias (ASP, ASP.NET, JSP, PHP, CSS, Java, XML, entre outras). Uma verso para teste pode ser encontrada em http://www.dreamweaver.com. - Microsoft Visual Studio .NET considerado pela Microsoft, o seu principal ambiente de desenvolvimento, suportando a criao de solues baseadas na plataforma .NET, incluindo-se aplicativos desktop, ASP.NET, web services, classes, aplicativos para dispositivos mveis, entre outros. Sua pgina na Internet http://msdn.microsoft.com/vstudio/. - Delphi for .NET ambiente de desenvolvimento integrado da Borland para construo de aplicaes .NET ou desktop,ambas com viso ALM (Application Lifecycle Desenvelopment), que acompanha todo o ciclo de vida da aplicao. Sua pgina na internet http://www.borland.com. ASP.NET, HTML, C# e DELPHI.NET As pginas ASP.NET produzem arquivos de extenso .aspx. Normalmente, elas so divididas em duas sees principais: HTML e uma linguagem intermediria-IL (C Sharp representado por C#, Delphi.NET(pascal), Visual Basic). Assim, o cdigo IL colocado dentro do elemento script, antes do cdigo HTML propriamente. necessrio ainda, que seja explicitada a linguagem que est sendo utilizada, o que feito com uso da diretiva Page Language, que adicionada no incio do cdigo da pgina. Um exemplo simples de uma pgina ASP.NET o seguinte:

Delphi 2005 Delphi.Net

Visual Studio 2005 C#

Fbio Jos de Gondra Ramos Pgina 5 de 60

1 2 3 4 5 6

void limpar(object sender, EventArgs e) { Label2.Text = " "; }

CODIGO ASP.NET

7 CODIGO HTML 8 9 10 11 Pgina de 12 Exemplo 13 Esta uma pgina de exemplo, onde exemplificada 14 a diviso entre o cdigo HTML e ASP.NET 15 16 17 18 19

Nota-se, que o elemento script possui um atributo runat, que possui o valor server. Isto significa que todo o contedo deste elemento estar sendo executado no servidor. Isto necessrio pelo fato de ser o servidor, o lugar onde est instalado o .NET framework (o cliente no necessariamente o ter instalado). As linguagens C# e Delphi.NET possuem algumas caractersticas prprias, porm suas estruturas sob do ponto de vista lgico so semelhantes. A Code Gear atual detentora do Delphi resolve chamar de Delphi.NET a codificao PASCAL, portanto para fins didticos, tambm o farei. Operadores de atribuio, comparao e lgicos Operador Atribuio Comparao Diferente Menor que Maior que Menor ou igual Maior ou igual E (lgico) Ou (lgico) No (lgico) No exclusivo Operadores de aritmticos Operador Adio Subtrao Multiplicao Diviso simples Diviso de inteiro Mdulo Potenciao Delphi.NET + * / div mod No existe C# + * / / % ^ Delphi.NET := = < > = and or not xor C# = == != < > = && || ! ^

Delphi 2005 Delphi.Net

Visual Studio 2005 C#

Fbio Jos de Gondra Ramos Pgina 6 de 60

Operadores de incremento e decremento Operador Incremento Decremento Contadores Operador Contador Tipos/Variveis Tipo Inteiro de 8 bits com sinal Inteiro de 8 bits sem sinal Inteiro de 16 bits com sinal Inteiro de 16 bits sem sinal Inteiro de 32 bits com sinal Inteiro de 32 bits sem sinal Inteiro de 64 bits com sinal Inteiro de 64 bits sem sinal Flutuante simples Flutuante duplo Decimal fixo Monetrio Data/hora Variante Caracter de 1 byte Caracter de 2 bytes String fixo String dinmica de 1 byte String dinmica de 2 byte Booleano Tipos Vetores Array Definido pelo usurio Delphi.NET X: array[a..n] of tipo Exemplo: X:Array[0..7] of string; X: array of tipo Obs: utilize SET LENGTH( ) para alocar memria ao array Exemplo: X array of string; Set length(X,30); C# Tipo X[n] Exemplo: int X[8]; No definido Delphi.NET ShortInt Byte Smallint Word Integer Cardinal Int64 Uint64 Single Double No existe Currency TDateTime Variant, OleVariant Ansichar Char, WideChar ShortString AnsiString String, WideString Boolean C# sbyte byte short ushort int uint long ulong float double decimal No existe No existe No existe No existe char No existe No existe string bool Delphi.NET x:= x+ n C# x+=n Delphi.NET Inc( ) Dec( ) C# ++ --

Dinmicos

Registros Por definio a chamada de registros tanto em Delphi.NET como em C#, se d atravsde estruturas. Delphi.NET C#

Delphi 2005 Delphi.Net

Visual Studio 2005 C#

Fbio Jos de Gondra Ramos Pgina 7 de 60

Type Public struct MyRec MyRec = record { I : Integer; int I; d: Double; double d; end; } Obs: Ao se trabalhar com um registro use um ponto para acessar seus campos Exemplo: Var N: MyRec; begin N.i :=23; N.d := 3.4; end;

Capitulo III Estruturas lgicasPARA FINS DIDTICOS USAREI A SEGUINTE CONVENO: Definio Comando (palavra reservada no pode ser substituda) Texto livre (termos digitados pelo usurio) Estilo do texto Negrito, vertical Texto normal, itlico Exemplo begin Comando n

Estruturas As estruturas so comandos que possuem um incio, um corpo e um fim, onde o corpo pode conter outros comandos ou estruturas. Estrutura de bloco Utilizada para agrupar comandos. Lgica Comeo aqui so colocados comandos da estrutura fim Delphi.NET begin aqui so colocados comandos da estrutura end C# { aqui so colocados comandos da estrutura }

os

os

os

Estrutura de deciso simples A estrutura de deciso simples permite ao processador desviar o fluxo da aplicao em funo de uma deciso lgica condicionada. Lgica Se condio ento comeo comandos executados se a condio for verdadeira fim seno comeo comandos executados se a condio no for verdadeira fim Delphi.NET if condio then begin comandos executados se a condio for verdadeira end else begin comandos executados se a condio no for verdadeira end; C# If condio { comandos executados se a condio for verdadeira } else { comandos executados se a condio no for verdadeira }

Estrutura de deciso multipla A estrutura de deciso multipla permite ao processador desviar o fluxo da aplicao em funo de diversas decises lgicas condicionadas a uma nica questo. Lgica Caso varivel faa Caso 1: comandos Delphi.NET case varivel of C# switch (varivel) {

Delphi 2005 Delphi.NetCaso 2: comandos Caso n: comandos Fim do caso

Visual Studio 2005 C#1: begin comandos end; 2: begin comandos end; n: begin comandos end; else: begin comandos end; endcase;

Fbio Jos de Gondra Ramos Pgina 8 de 60

case 1: comandos; break; case 2: comandos; break; case n:comandos; break; default: comandos; }

Estruturas de repetio As estruturas de repetio criam blocos de comandos que se repetem de forma controlada. Lgica Comando ENQUANTO: Enquanto condio faa Comece Comandos Fim do enquanto Comando CONTE: Conte varivel de valor 1 at valor 2 faa comece comandos fim Delphi.NET while condio do begin comandos; end; for var:=val1 to val2 do begin Comandos; end; C# while (condio) { comandos; } for (int var=val1;i>valor; i++) { Comandos; }

Como o objetivo principal demonstrar ao leitor as tcnicas para programao Web utilizando-se da ferramenta Delphi 2005, trataremos cada exemplo abordado, nas duas linguagens (Delphi.NET (Delphi Net) e C# (ASP.Net), sempre com a imparcialidade necessria.

Capitulo IV Instalao do Internet Information ServerDurante a instalao do Delphi 2005 ou do Microsoft Visual Studio 2005 so solicitados alguns prerequesitos sem os quais no se poderia desenvolver aplicaes para Web, dentre os quais um servidor de acessos. Para controle de acesso a internet utilizaremos o IIS (Internet Information Server) da Microsoft. Instalao de IIS em Windows XP profissional Internet Information Server (IIS) o servidor de pginas web avanado da plataforma Windows. Distribui-se gratuitamente junto com as verses de Windows baseadas em NT (Windows 2000 e Windows XP). IIS pode ser encontrado no prprio CD de instalao de Windows XP Profissional. Temos que acessar a opo de "Instalar componentes opcionais de Windows" para poder carreg-lo em nosso sistema. Para isso temos duas opes: 1) Inserir o CD de instalao de Windows e na janela que se mostra para dar o arranque, selecionar a opo que pem "Instalar componentes opcionais de Windows"

Delphi 2005 Delphi.Net

Visual Studio 2005 C#

Fbio Jos de Gondra Ramos Pgina 9 de 60

2) No Painel de controle, selecionar a opo de "Adicionar ou remover programas" e na janela que sai, clicar sobre o cone da esquerda marcado como "Selecionar ou remover componentes de Windows".

Agora nos mostra a janela para selecionar os componentes adicionais de Windows que esto disponveis. Na lista, marquei a opo "Servios de Internet Information Server (IIS)". Por padro se selecionam alguns componentes, dentro dos que oferece a instalao de IIS. Ns podemos escolher que componentes desejei instalar apertando o boto marcado como "Detalhes". Entre os possveis componentes se encontram as extenses de Frontpage, documentao, servios adicionais de IIS, um servidor de FTP (para a transferncia de arquivos com o servidor por FTP), inclusive de SMTP (para o envio de correios eletrnicos).

Uma vez instalado os componentes desejados, podemos apertar o boto de "Seguinte" para comear a instalao, que demorar uns minutos. Acessar ao servidor web Podemos acessar ao servidor web para comprovar se foi instalado corretamente IIS. Para isso, simplesmente devemos escrever http://localhost em Internet Explorer e dever aparecer uma pgina

Delphi 2005 Delphi.Net

Visual Studio 2005 C#

Fbio Jos de Gondra Ramos Pgina 10 de 60

web informando que IIS est corretamente instalado. Alm disso, aparecer a documentao de IIS em uma janela emergente, se tiver sido instalada.

Ativando e Desativando o IIS em Windows XP profissional Quando o IIS estiver parado, isto o servio no foi iniciado ou foi interrompido por um motivo qualquer, torna-se impossvel a exibio de pginas a partir de determinados servidores, surgindo a seguinte tela:

Para ativar o IIS proceda conforme descrito: Clique em iniciar; Painel de controle; Ferramentas administrativas; Internet Information Services.

Delphi 2005 Delphi.Net

Visual Studio 2005 C#

Fbio Jos de Gondra Ramos Pgina 11 de 60

Status do IIS

Selecione o Servidor virtual SMTP (padro)

Inicializa o IIS

Para iniciar ou reinicializar o administrador do IIS e os servios dependentes deste proceda da seguinte forma: Clique em iniciar; Painel de controle; Ferramentas administrativas; Servios; Servios de Administrao do IIS.

Ao se reiniciar os Servios de administrao do IIS, os servios de publicao na Web, SMTP e FTP tambm sero reiniciados.

Delphi 2005 Delphi.Net

Visual Studio 2005 C#

Fbio Jos de Gondra Ramos Pgina 12 de 60

CapituloApresentao do Delphi 2005 Tela de Abertura

V Escolhendo uma ferramenta

Mdulos carregados

Aps o carregamento dos mdulos o delphi mostrar a sua tela inicial, atravs da qual definiremos que tipo de aplicativo faremos e com qual linguagem intermediria iremos trabalhar.

Menu Principal Barra de ferramentas Regio de estrutura Gerente de projeto Configurao de objetos Paleta de componentes

Uma vez carregado o Delphi definiremos o tipo do aplicativo que queremos desenvolver:

1. Menu Principal: Regio onde so mantidos os comandos do delphi referentes a:a. File (arquivo): Operaes com arquivos (novo, abrir, salvar, fechar, sair); b. Edit (editar): Realiza operaes de copia, colagem, excluso, desfazer, refazer e seleo;

Delphi 2005 Delphi.Net

Visual Studio 2005 C#

Fbio Jos de Gondra Ramos Pgina 13 de 60

2. 3. 4. 5.

c. Search (procura): Operaes de busca e troca; View (visualiza): Promove a visualizao de janelas, formulrios, units e helps; e. Refactor: Operaes de renomeao, localizao, declaraes de variveis; f. Project: Operaes de incluso, excluso, compilao de Units; g. Run (executar): Executa, compila projetos; h. Component (componentes): Instala e habilita componentes ou pacotes; i. Tools (ferramentas): Executa aplicativos externos ao delphi; j. Star Team (equipe estrela): Define um grupo para desenvolvimento comum; k. Window (janela): Permite o controle de janelas; e l. Help (ajuda): Chama arquivos de ajuda. Structure: Aponta para as estruturas (procedimentos, bibliotecas, variveis), existentes em um projeto; Object inspector: Descreve as propriedades e os eventos dos objetos utilizados em um projeto; Project Manager: Aponta para todas as pginas anexadas ao projeto; Tool palete: Paleta de componentes, armazena todos os objetos disponveis para utilizao no projeto. d.

Escolhendo uma linguagem intermediria A deciso para definio da linguagem a ser empregada em um projeto delphi ocorre no momento da sua criao. Clique na opo File; Selecione New;

Cria aplicao Web com C# Cria aplicao Web com Delphi.NET

Para montar a aplicao usando C# como IL: Escolha a opo: File... New... ASP.NET Web Application C#Builder

Delphi 2005 Delphi.Net

Visual Studio 2005 C#

Fbio Jos de Gondra Ramos Pgina 14 de 60

Aps escolher a opo acima devemos indicar o diretrio onde ser armazenada a aplicao:

NameSpace da aplicao Diretrio da aplicao Servidor da aplicao

Para montar a aplicao usando Delphi.Net como IL: Escolha a opo: File... New... ASP.NET Web Application Delphi for .Net

Para ambas linguagens o delphi far os mesmos questionamentos a respeito do projeto a ser criado, solicitando o nome para aplicao, o local onde sero armazenadas as pginas e qual o servidor a ser utilizado. A figura a seguir demonstra tal questionrio.

Indica o nome para aplicao Indica o local para as pginas Indica qual o servidorQuando no se menciona um nome para a aplicao o delphi sugerir o nome padro WebApplication acompanhado do nmero seqencial das pastas contidas na pasta padro C:\netpub\wwwroot\.

Delphi 2005 Delphi.Net

Visual Studio 2005 C#

Fbio Jos de Gondra Ramos Pgina 15 de 60

Apresentao do Visual Studio 2005 Tela de Abertura

Menu principal Barra de ferramentas Pgina inicial Lista dos ltimos projetos

rea de desenvolvimento

Uma vez carregado o Visual Studio definiremos o tipo do aplicativo que queremos desenvolver: Menu Principal: Regio onde so mantidos os comandos do Visual Studio referentes a: a. File (arquivo): Operaes com arquivos (novo, abrir, salvar, fechar, sair); b. Edit (editar): Realiza operaes de copia, colagem, excluso, desfazer, refazer e seleo; c. View (visualiza): Promove a visualizao de janelas, formulrios, codes e helps; d. Tools (ferramentas): Habilita ferramentas de apoio ao visual studio; e. Window (janela): Permite o controle de janelas; f. Comunity: (comunidade): Permite contato com comunidades web do visual studio; e g. Help (ajuda): Chama arquivos de ajuda. Escolhendo uma linguagem intermediria A deciso para definio da linguagem a ser empregada em uma aplicao do Visual Studio ocorre no momento da sua criao. Clique na opo File; Selecione New;

Delphi 2005 Delphi.Net

Visual Studio 2005 C#

Fbio Jos de Gondra Ramos Pgina 16 de 60

Cria um novo projeto local Cria uma novo projeto web Cria uma novo modelo de arquivo

Como o foco deste estudo a programao web escolheremos a opo Web Site

Cria uma novo site de web com ASPNET Cria o local onde estar o site

Indica a linguagem intermediria

Uma vez definido que tipo de aplicativo e com qual linguagem intermediria iremos trabalhar o visual studio abre o formulrio para confeco do site.

Delphi 2005 Delphi.Net

Visual Studio 2005 C#

Fbio Jos de Gondra Ramos Pgina 17 de 60

Caixa de ferramentas (objetos) Lista todos as pginas da aplicao Mostra as propriedades e eventos dos objetos Mostra o formulrio (desenho) Mostra o cdigo ASP

Capitulo VII Conhecendo uma ILComo mencionei anteriormente uma IL (linguagem intermediria), a linguagem responsvel pelo dinamismo empregado s pginas web, quebrando-se assim o fator esttico do HTML. Para fins didticos e com o objetivo de mostrar ao usurio que a melhor IL aquela que voc escolheu para se aperfeioar apresentarei todos os exemplos em C# com a ferramenta Visual Studio 2005 e Delphi.NET com a ferramenta Delphi 2005, procurando da melhor forma possvel traar um paralelo entre elas de forma a torn-las acessveis ao leitor. Crie uma pasta na unidade C: e chame de WebCurso, em seguida abra a pasta C:\WebCurso e crie mais duas pastas: uma denominada CSharp e a outra DelphiNET. Assim todos os exemplos feitos com C# ficaro armazenados em C:\WebCurso\CSharp, bem como os exemplos feitos com Delphi.NET ficaro armazenados em C:\WebCurso\DelphiNET. Todos os exemplos apresentaro a mesma interface grfica tendo diferente apenas a sua parte literal. A pgina de cdigos C# (Codificao para ferramenta DELPHI 2005). Usando C#, tem-se: using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Drawing; using System.Web; using System.Web.SessionState; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls;

}

Bibliotecas

namespace UsandoC { /// /// Summary description for WebForm1. ///

Identificao da pgina

Delphi 2005 Delphi.Netpublic {

Visual Studio 2005 C#class WebForm1 : System.Web.UI.Page

Fbio Jos de Gondra Ramos Pgina 18 de 60

Declarao da pgina na webprotected System.Web.UI.WebControls.Button button1; protected System.Web.UI.WebControls.Label label1; protected System.Web.UI.WebControls.Label label2;

}

Declarao dos objetos usados quando

private void Page_Load(object sender, System.EventArgs e) { Comandos executados // Put user code to initialize the page here } a pgina carregada

#region Web Form Designer generated code override protected void OnInit(EventArgs e) { Comandos executados quando // // CODEGEN: This call is required by the ASP.NET Web Form Designer. o componente inicializado // InitializeComponent(); base.OnInit(e); } /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { Declarao de procedimentos this.button1.Click += new System.EventHandler(this.button1_Click); this.Load += new System.EventHandler(this.Page_Load); por objetos } inicializados #endregion private void button1_Click(object sender, System.EventArgs e) Aps #endregion deve-se { descrever os procedimentos label1.Text=label2.Text; utilizados na pgina. } } } A pgina de cdigos Delphi.NET (Codificao para ferramenta DELPHI 2005). Usando Delphi.NET, tem-se: unit WebForm1; interface uses System.Collections, System.ComponentModel, System.Data, System.Drawing, System.Web, System.Web.SessionState, System.Web.UI, System.Web.UI.WebControls, System.Web.UI.HtmlControls; type TWebForm1 = class(System.Web.UI.Page) {$REGION 'Designer Managed Code'} strict private procedure InitializeComponent;

Declarao da pgina

}

B ib lio te c a

Declarao de procedimentos inicializados por objetos

Delphi 2005 Delphi.Net

Visual Studio 2005 C#

Fbio Jos de Gondra Ramos Pgina 19 de 60

procedure Button1_Click(sender: System.Object; e: System.EventArgs); {$ENDREGION} strict private procedure Page_Load(sender: System.Object; e: System.EventArgs); strict protected Button1: System.Web.UI.WebControls.Button; Label1: System.Web.UI.WebControls.Label; Declarao dos objetos Label2: System.Web.UI.WebControls.Label; procedure OnInit(e: EventArgs); override; usados private { Private Declarations } Declarao de variveis privadas public { Public Declarations } Declarao de variveis privadas end;

}

implementation {$REGION 'Designer Managed Code'} Aps implementation deve-se /// descrever os procedimentos /// Required method for Designer support -- do not modify utilizados na pgina. /// the contents of this method with the code editor. /// procedure TWebForm1.InitializeComponent; begin Include(Self.Button1.Click, Self.Button1_Click); Include(Self.Load, Self.Page_Load); end; {$ENDREGION} procedure TWebForm1.Page_Load(sender: System.Object; e: System.EventArgs); begin // TODO: Put user code to initialize the page here Comandos executados quando a pgina carregada end; procedure TWebForm1.OnInit(e: EventArgs); begin // // Required for Designer support // InitializeComponent; inherited OnInit(e); end;

Declarao de procedimentos inicializados por objetos

procedure TWebForm1.Button1_Click(sender: System.Object; e: System.EventArgs); begin Label1.Text:=Label2.Text; end; end. A pgina de cdigos C# (Codificao para ferramenta VISUAL STUDIO 2005). Usando C#, tem-se: using using using using System; System.Data; System.Configuration; System.Web;

}

Bibliotecas

Delphi 2005 Delphi.Netusing using using using using

Visual Studio 2005 C#

Fbio Jos de Gondra Ramos Pgina 20 de 60

System.Web.Security; System.Web.UI; System.Web.UI.WebControls; System.Web.UI.WebControls.WebParts; System.Web.UI.HtmlControls;

public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } }

Comandos executados quando a pgina carregada

Projeto 01 Conhecendo objetos O objetivo deste exemplo ambientalizar o leitor com os objetos, suas propriedades e eventos. A parte visual do projeto a mesma tanto para o Visual Studio como para Delphi, apenas a parte literal (codificao) ser especfica. A Pagina:

Ajuste dos objetos: Neste primeiro exemplo usei um objeto Panel e trs objetos Button, o efeito desejado alterar a cor do panel mediante um click sobre o boto desejado. No Delphi 2005 este ajuste feito no Object Inspector No Visual Studio 2005 este ajuste feito no ToolBox Delphi Paleta Visual Studio Paleta Objeto Button1 WebControls Standard Button2 Button3 Panel1 Terminada a confeco da pgina necessrio escrever os procedimentos na pgina de codificaes utilizando a IL escolhida: Escrevendo cdigos em C# (Visual Studio): protected void Amarelo_Click(object sender, EventArgs e) { Propriedade Text ID Text ID Text ID Valor Amarelo Amarelo Vermelho Vermelho Azul Azul Evento Amarelo_Click Vermelho_Click Azul_Click

Delphi 2005 Delphi.Net

Visual Studio 2005 C#

Fbio Jos de Gondra Ramos Pgina 21 de 60

Panel1.BackColor = System.Drawing.Color.Yellow; } protected void Vermelho_Click(object sender, EventArgs e) { Panel1.BackColor = System.Drawing.Color.Red; } protected void Azul_Click(object sender, EventArgs e) { Panel1.BackColor = System.Drawing.Color.Blue; } Escrevendo cdigos em Delphi.NET (Delphi): procedure TWebForm1.Azul_Click(sender: System.Object; e: System.EventArgs); begin panel1.BackColor := System.Drawing.Color.get_Blue; end; procedure TWebForm1.Vermelho_Click(sender: System.Object; e: System.EventArgs); begin panel1.BackColor := System.Drawing.Color.get_Red; end; procedure TWebForm1.Amarelo_Click(sender: System.Object; e: System.EventArgs); begin panel1.BackColor := System.Drawing.Color.get_Yellow; end; OBSERVAES: - Note a presena da biblioteca System.Drawing, que responsvel pela liberao do mtodo color tanto no Delphi como no Visual Studio. A incluso da biblioteca System.Drawing na clausula USES do Delphi, ou na clausula USING do Visual Studio, promovera uma reduo na linha de cdigo dos comando clicks executados. procedure TWebForm1.Amarelo_Click(sender: System.Object; e: System.EventArgs); begin panel1.BackColor := Color.get_Yellow; end; Projeto 02 Conhecendo objetos O objetivo deste exemplo ambientalizar o leitor com os objetos, suas propriedades e eventos. Neste exemplo usei um objeto dropdownlist, trs objetos label e um objeto button, o efeito desejado identificar a opo selecionada no dropdownlist e transferir para os labels o item selecionado e o seu valor correspondente mediante um click sobre o boto. A pgina:

Delphi 2005 Delphi.Net

Visual Studio 2005 C#

Fbio Jos de Gondra Ramos Pgina 22 de 60

Delphi Paleta

Visual Studio Paleta

ObjetoLabel1 Label2 Label3

PropriedadeText ID Text ID Text ID Membros

ValorIndique uma opo: Itemlido Item: Valorlido Valor: Opcoes Propriedades Text Value Opo 01 Valor 01 Opo 02 Valor 02 Opo 03 Valor 03 Ler item

Evento

WebControls

Standard Dropdownlist1

Items

Opo 01 Opo 02 Opo 03

Button1

Text

Button1_Click

Escrevendo cdigos em C# (Visual Studio): protected void Button1_Click(object sender, EventArgs e) {Itemlido.Text = "Opo selecionada:" + Opcoes.SelectedItem.ToString(); Valorlido.Text = "Valor correspondente:" + Opcoes.SelectedValue;

} Escrevendo cdigos em Delphi.NET (Delphi.NET): procedure TWebForm1.Button1_Click(sender: System.Object; e: System.EventArgs); begin itemlido.Text := 'Opo selecionada:' + opcoes.SelectedItem.ToString; valorlido.Text := 'Valor correspondente:' + opcoes.SelectedValue; end; Exerccio 01 Monte uma aplicao capaz de alterar a cor de um objeto panel, baseado-se no valor contido em um dropdownlist. Projeto 03 Conhecendo objetos O objetivo deste exemplo ambientalizar o leitor com os objetos, suas propriedades e eventos. Neste exemplo usei um objeto label, dois objetos textbox e dois objetos button, o efeito desejado mostrar a diferena entre as operaes de soma de valores numricos (inteiros) e valores literais (strings) mediante um click sobre o boto especfico. A pgina:

Delphi 2005 Delphi.Net

Visual Studio 2005 C#

Fbio Jos de Gondra Ramos Pgina 23 de 60

Delphi Paleta

Visual Studio Paleta

Objeto Label1 Label2 Label3

WebControls

Standard

Button1 Button2 TextBox1 TextBox2

Propriedade Text Text Text ID Text Text ID ID

Valor 1 valor: 2 valor: Resultado Resultado Soma como inteiro Soma como literal Valor1 Valor2

Evento

Button1_Click Button2_Click

Neste exemplo tive a necessidade de criar 03 (trs) variveis do tipo inteiro, observe as diferentes formas de criao das variveis privadas entre as linguagens C# e Delphi.NET. Criando as variveis em C# (Visual Studio): public partial { private int a private int b private int c class _Default : System.Web.UI.Page = 0; = 0; = 0;

Criando as variveis em Delphi.NET (Delphi.NET): private { Private Declarations } var a,b,c:integer; Escrevendo cdigos em C# (Visual Studio): protected { try { a b c void Button1_Click(object sender, EventArgs e)

= Convert.ToInt32(Valor1.Text); = Convert.ToInt32(Valor2.Text); = a + b;

Resultado.Text = "O resultado a soma do 1 valor com o 2 valor: " + c.ToString();

} catch { Resultado.Text = "Voce digitou um caracter que no pode ser convertido para inteiro!"; }

Delphi 2005 Delphi.Net

Visual Studio 2005 C#

Fbio Jos de Gondra Ramos Pgina 24 de 60

} protected void Button2_Click(object sender, EventArgs e) { Resultado.Text = "O resultado a unio do 1 valor com o 2 valor: " + Valor1.Text + Valor2.Text; } Escrevendo cdigos em Delphi.NET (Delphi.NET): procedure TWebForm1.Button1_Click(sender: System.Object; e: System.EventArgs); begin try a := convert.toint32(valor1.Text); b := convert.toint32(valor2.Text); c := a + b; resultado.Text := 'O resultado a soma do 1 valor com o 2 valor:' + c.ToString; except resultado.Text := 'Voce digitou um caracter que no pode ser convertido para inteiro!'; end; end; procedure TWebForm1.Button2_Click(sender: System.Object; e: System.EventArgs); begin resultado.Text := 'O resultado a unio do 1 valor com o 2 valor:' + valor1.Text + valor2.Text; end; Projeto 04 Conhecendo objetos O objetivo deste exemplo ambientalizar o leitor com os objetos, suas propriedades e eventos. Neste exemplo usei um objeto radiobuttonlist, um objeto image e um objeto button, o efeito desejado carregar uma imagem baseada no valor contido no radiobuttonlist mediante um click sobre o boto aplicar. A pgina:

Delphi Paleta

Visual Studio Paleta

Objeto Image1 Button1

Propriedade Text ID ID

Valor Aplicar Aplicar voar Membros Propriedades Text Value Voa Voaparadireita.gif para direita Voa Voaparaesquerda.gif para esquerda

Evento Aplicar_Click

WebControls

Standard Radiobutonlist1 Items

Voa para direita Voa para esquerda

Delphi 2005 Delphi.Net

Visual Studio 2005 C#

Fbio Jos de Gondra Ramos Pgina 25 de 60

Escrevendo cdigos em C# (Visual Studio): protected void Aplicar_Click(object sender, EventArgs e) { Image1.ImageUrl = "~/" + Voar.SelectedValue; } Escrevendo cdigos em Delphi.NET (Delphi.NET): procedure TWebForm1.Aplicar_Click(sender: System.Object; e: System.EventArgs); begin Image1.ImageUrl := './' + Voar.SelectedValue.ToString; end; Projeto 05 Conhecendo objetos O objetivo deste exemplo ambientalizar o leitor com os objetos, suas propriedades e eventos. Neste exemplo usei cinco objetos labels, cinco objetos textboxs, um objeto button, um objeto requiredfieldvalidator, um objeto comparevalidator, dois objetos regularexpressionvalidators e um objeto rangevalidator, o efeito desejado validar entradas mediante um click sobre o boto validar. A pgina:

Delphi Paleta WebControls

Visual Studio Paleta

Standard

Objeto Label1 Label2 Label3 Label4 Label5 Button1 Textbox1 Textbox2 Textbox3 Textbox4 Textbox5 RequiredFieldValidator1

Propriedade Text Text Text Text Text Text ID ID ID ID ID ErrorMessage Controltovalidate ErrorMessage Controltovalidate Operator Type Valuetocompare ErrorMessage

Validation

CompareValidator1

RegularExpressionValidator1

Valor Nome: Quantidade: CEP: Site: Pedidos: Validar Nome Qtdade CEP Site Pedidos (Campo Obrigatrio) Nome Quantidade Excede de 500 Qtdade LessThan Integer 500 Digite 99999-

Evento

Delphi 2005 Delphi.Net

Visual Studio 2005 C#

Fbio Jos de Gondra Ramos Pgina 26 de 60

Controltovalidate Validationexpression ErrorMessage RegularExpressionValidator2 Controltovalidate Validationexpression ErrorMessage RangeValidator1 Controltovalidate Maximumvalue Minimumvalue Type

999 CEP \d{5}(-\d{3})? Endereo URL Invlido: digite http://..... Site http://([\w-]+\.) +[\w-]+(/ [\w./? %&=]*)? Pedido mnimo 1 e mximo 5 Pedidos 5 1 Integer

Escrevendo cdigos em C# (Visual Studio): Nenhum cdigo descrito Escrevendo cdigos em Delphi.NET (Delphi.NET): Nenhum cdigo descrito

Capitulo VII Trabalhando com estruturasConforme mencionei anteriormente, as estruturas so comandos que possuem um incio, um corpo e um fim, onde o corpo pode conter outros comandos ou estruturas. Elas visam agrupar comando de forma a exercer um controle maior sobre estes. Tomando uma deciso simples A tomada de deciso simples uma operao lgica/relacional onde se tem apenas duas respostas possveis: verdade ou falsidade, a depender da sua escolha uma srie de comandos sero executados enquanto outra serie ser desprezada. Organizao lgica: Se (condio for verdadeira) ento

} }

Comandos executados se condio for verdadeira

Seno Comandos executados se condio for falsa

Projeto 06 Tomando uma deciso simples O objetivo deste exemplo verificar se o valor digitado pelo usurio igual a uma constante imbutida nas linhas de cdigo do exemplo. Neste exemplo usei trs objetos labels, dois objetos textboxs e um objeto button, o efeito desejado validar o usurio e sua senha mediante um click sobre o boto validar. A pgina:

Delphi 2005 Delphi.Net

Visual Studio 2005 C#

Fbio Jos de Gondra Ramos Pgina 27 de 60

Delphi Paleta

Visual Studio Paleta

Objeto Label1 Label2 Label3

WebControls

Standard

TextBox1 TextBox2

Propriedade Text Text Text Visible ID MaxLength ID

Valor

Evento

Usurio: Senha:Resultado False Usurio: 10

Button1

Maxlength TextMode Text ID

Senha 6 Password Validar Validar

Validar_click

Escrevendo cdigos em C# (Visual Studio): protected void Validar_Click(object sender, EventArgs e) { if (Usuario.Text == "GONDRA") { if (Senha.Text == "DRAGON") { Resultado.Text = "Acesso permitido!"; } else { Resultado.Text = "Senha invlida!"; } } else { Resultado.Text = "Acesso negado!"; } Resultado.Visible = true; } Escrevendo cdigos em Delphi.NET (Delphi.NET): procedure TWebForm1.Validar_Click(sender: System.Object; e: System.EventArgs); begin if usuario.Text = 'GONDRA' then if senha.Text = 'DRAGON' then resultado.Text := 'Acesso permitido!' else resultado.Text := 'Senha invlida!' else resultado.Text := 'Acesso negado!';

Delphi 2005 Delphi.Net

Visual Studio 2005 C#resultado.Visible := true;

Fbio Jos de Gondra Ramos Pgina 28 de 60

end; Projeto 07 Permitindo ou negando acesso a uma pgina O objetivo deste exemplo verificar se o usurio tem permisso ou no para abrir uma nova pgina. Neste exemplo usei duas pginas: Na primeira coloquei dois objetos labels, um objeto dropdownlist e um objeto button, na segunda pgina coloquei apenas um label e um button. O efeito desejado permitir ou negar o acesso segunda pgina, de acordo com o valor selecionado no dropdownlist1 da primeira pgina validando assim o usurio mediante um click sobre o boto validar. A pgina 01:

Delphi Paleta

Visual Studio Paleta

Objeto Label1

Propriedade Text Text Font ID Visble Text ID

Label2

WebControls

Standard

Button1

Dropdownlist1

Items

ID

Valor Usurios: Acesso negado! Size Large Bold True Resultado False Validar Validar Propriedades Membros Text Value Gondra Gondra 0 Tio Tio 1 Zefa Zefa 2 Usuarios

Evento

Validar_click

Antes de incrementar o procedimento Validar_click, conveniente que voc adicione uma nova pgina a sua aplicao. Para adicionar uma nova pgina com Visual Studio:

Delphi 2005 Delphi.Net

Visual Studio 2005 C#

Fbio Jos de Gondra Ramos Pgina 29 de 60

Escrevendo cdigos em C# (Visual Studio): private void validar_Click(object sender, System.EventArgs e) { if (Convert.ToInt32(Usuarios.SelectedValue) == 0) { Session["acesso"] = Usuarios.SelectedItem.ToString(); Response.Redirect("WebForm2.aspx"); } else { Resultado.Visible = true; } } Escrevendo cdigos em Delphi.NET (Delphi.NET): procedure TWebForm1.Validar_Click(sender: System.Object; e: System.EventArgs); begin if convert.ToInt32(Usuarios.SelectedValue) = 0 then begin session['acesso'] := Usuarios.SelectedItem.ToString; response.Redirect('WebForm2.aspx'); end else Resultado.Visible := true; end; Para se anexar uma nova pgina a aplicao proceda da seguinte forma: Anexando uma pgina em aplicao C#: Click sobre: File New Other

Delphi 2005 Delphi.NetSelecione:

Visual Studio 2005 C#

Fbio Jos de Gondra Ramos Pgina 30 de 60

C#Projects New ASP.NET Files E escolha: ASP.NET Page

Anexando uma pgina em aplicao Delphi.NET (Delphi.NET): Click sobre: File New Other Selecione: Delphi for .Net Projects New ASP.NET Files E escolha: ASP.NET Page

A pgina 02:

Objeto Label1 Button1

Propriedade Text ID ID Text

Valor Usurio: acessado Retornar Retornar

Evento

Retornar_Click

Delphi 2005 Delphi.Net

Visual Studio 2005 C#

Fbio Jos de Gondra Ramos Pgina 31 de 60

Nesta pgina foi usado um procedimento especial denominado Page Load, que disparado sempre que a pgina carregada. O objetivo deste procedimento neste exerccio mostrar o nome do usurio selecionado na pgina anterior. Observe a presena do comando SESSION, este comando utilizado para transferir parmetros, alocando valores em uma varivel pblica, e a presena do RESPOSE.REDIRECT usado para redirecionar pginas. Escrevendo cdigos em C#: public class WebForm2 : System.Web.UI.Page { private void Page_Load(object sender, System.EventArgs e) { // Transferencia do nome do usuario acessado.Text = "Usurio:" + Session["acesso"].ToString(); } private void retornar_Click(object sender, System.EventArgs e) { Response.Redirect("webform1.aspx"); } } Escrevendo cdigos em Delphi.NET (Delphi.NET): procedure TWebForm2.Page_Load(sender: System.Object; e: System.EventArgs); begin // TODO: Put user code to initialize the page here acessado.Text:='Usurio:' + session['acesso'].ToString; end; procedure TWebForm2.Retornar_Click(sender: System.Object; e: System.EventArgs); begin response.Redirect('webform1.aspx'); end; Projeto 08 Montando um menu O objetivo deste exemplo promover a navegao entre pginas de uma aplicao baseando-se na escolha de uma opo de um menu. Neste exemplo usei 07 pginas: Na primeira coloquei quatro objetos buttons e dois objetos listboxs, nas demais pginas coloquei apenas um label e um button. O efeito desejado permitir o acesso as pginas, de acordo com o valor selecionado no listbox1 da primeira pgina mediante um click sobre o boto aplicar. A pgina 01:

Delphi 2005 Delphi.Net

Visual Studio 2005 C#

Fbio Jos de Gondra Ramos Pgina 32 de 60

Objeto Button1

Button2 Button3 Button4

Propriedade Text ID Command Argument ID Text Command Argument ID Text ID Text ID

Valor Cadastros Cadastros 1 Consultas Consultas 2 Aplicar Aplicar Sair Sair Opccadastro Propriedades Membros Livros Almanaques Revistas Opcconsulta Propriedades Membros Livros Almanaques Revistas

Evento Cadastros_Click

Consultas_Click

Aplicar_Click Sair_Click

Listbox1

Items

Items Livros Almanaques Revistas

Value CadLivros.aspx CadAlmanaque.aspx CadRevistas.aspx

ID Listbox2

Items

Items Livros Almanaques Revistas

Value ConLivros.aspx ConAlmanaque.asp x ConRevistas.aspx

Dados para IL: IL C# Delphi.NET Application ASP.NET Web C#Builder Application Namespace cs08 pas08 DiretrioC:\WebCurso\CSharp\Exemplo08 C:\WebCurso\Delphi.NET\Exemplo08

ASP.NET Web Application Delphi for .NET

Escrevendo cdigos em C#: Obs: No esquea que as clausulas public class, Page_load e on_init j existem na pgina devemos apenas completar com o cdigo nescessario. public class WebForm1 : System.Web.UI.Page { // esta varivel identificar o menu que desejo abrir. private string escolha = ""; private void Page_Load(object sender, System.EventArgs e) {

Delphi 2005 Delphi.Net

Visual Studio 2005 C#

Fbio Jos de Gondra Ramos Pgina 33 de 60

// Put user code to initialize the page here Opccadastro.Visible = false; Opcconsulta.Visible = false; } private void Cadastros_Click(object sender, System.EventArgs e) { Session[menu] = Cadastros.CommandArgument; Opcconsulta.Visible = false; Opccadastro.Visible = true; } private void Consultas_Click(object sender, System.EventArgs e) { Session[menu] = Consultas.CommandArgument; Opccadastro.Visible = false; Opcconsulta.Visible = true; } private void Aplicar_Click(object sender, System.EventArgs e) { escolha = Session["menu"].ToString(); switch (escolha) { case "1": { Response.Redirect(Opccadastro.SelectedValue); break; } case "2": { Response.Redirect(Opcconsulta.SelectedValue); break; } } } private void sair_Click(object sender, System.EventArgs e) { Response.Close(); } }

Escrevendo cdigos em Delphi.NET (Delphi.NET): procedure TWebForm1.Page_Load(sender: System.Object; e: System.EventArgs); begin // TODO: Put user code to initialize the page here Opccadastro.Visible := false; Opcconsulta.Visible := false; end; procedure TWebForm1.sair_Click(sender: System.Object; e: System.EventArgs); begin Response.Close();

Delphi 2005 Delphi.Netend;

Visual Studio 2005 C#

Fbio Jos de Gondra Ramos Pgina 34 de 60

procedure TWebForm1.Aplicar_Click(sender: System.Object; e: System.EventArgs); var escolha:integer; begin escolha := Convert.ToInt16(Session['menu']); case escolha of 1: Response.Redirect(Opccadastro.SelectedValue); 2: Response.Redirect(Opcconsulta.SelectedValue); end; end; procedure TWebForm1.Consultas_Click(sender: System.Object; e: System.EventArgs); begin session['menu'] := Consultas.CommandArgument; Opccadastro.Visible := false; Opcconsulta.Visible := true; end; procedure TWebForm1.Cadastros_Click(sender: System.Object; e: System.EventArgs); begin Opcconsulta.Visible := false; Opccadastro.Visible := true; Session['menu'] := Cadastros.CommandArgument; end; As pginas 02 a 07: As pginas 02 at 07 possuem a mesma aparncia no entanto seus namespaces so diferenciados e precisam ser salvas. Para se anexar a pgina 02, proceda como no exerccio anterior. To logo tenha anexado a pgina 02 click em: File Save As... Em seguida: Localize o diretrio C:\WebCurso\CSharp\Exemplo08 se estiver desenvolvendo em C# ou C:\WebCurso\Delphi.NET\Exemplo08 se estiver desenvolvendo em Delphi.NET em seguida altere o nome de webform2.aspx para CadLivros.aspx Repita o processo para as seguintes pginas: CadAlmanaques.aspx; CadRevistas.aspx; ConLivros.aspx;

Delphi 2005 Delphi.Net

Visual Studio 2005 C#ConAlmanaques.aspx e

Fbio Jos de Gondra Ramos Pgina 35 de 60

ConRevistas.aspx A pgina:

Objeto

Propriedade Font.Bold Font.Size

Valor True Large Pgina CadLivros.aspx

Evento

Label1

Text ( O valor desta propriedade muda para cada pgina, conforme descrita ao lado)

CadAlmanaques.aspx CadRevistas.aspx ConLivros.aspx ConAlmanaques.aspx ConRevistas.aspx

Valor Cadastro de Livros Cadastro de Almanaques Cadastro de Revistas Consulta de Livros Consulta de Almanaques Consulta de Revistas Retorna_Click

Button1

ID Text

Retorna Retorna

Escrevendo cdigos em C#: private void button1_Click(object sender, System.EventArgs e) { Response.Redirect("webform1.aspx"); } Escrevendo cdigos em Delphi.NET (Delphi.NET): procedure TWebForm2.Button1_Click(sender: System.Object; e: System.EventArgs); begin Response.Redirect('webform1.aspx'); end; Projeto 09 Ampliando uma imagem O objetivo deste exemplo abrir uma nova pgina ampliando uma imagem contida em um imagebutton montado na pgina 01, a partir do click efetuado sobre o boto. Neste exemplo usei 02 pginas: Na primeira coloquei um label e um imagebutton e na segunda nenhum objeto colocado, apenas o evento page_load disparado O efeito desejado ampliar uma imagem contida em um imagebutton em uma nova pgina.

Delphi 2005 Delphi.NetA pgina 01:

Visual Studio 2005 C#

Fbio Jos de Gondra Ramos Pgina 36 de 60

Objeto Label1 ImageButton1

Propriedade Text Imageurl Width Height

Valor Obra de Antonio Canaletto Canaletto.JPG 50px 40px

Evento ImageButton1_Click

Escrevendo cdigos em C#: private void imageButton1_Click(object sender, System.Web.UI.ImageClickEventArgs e) { Response.Redirect("Canaletto.jpg"); } Escrevendo cdigos em Delphi.NET (Delphi.NET): procedure TWebForm1.ImageButton1_Click(sender: System.Object;e:System.Web.UI.Image Click eventArgs); begin Response.Redirect('Canaletto.jpg'); end; Na segunda pgina no coloquei nenhum evento, apenas trabalhei na clausula class, criando uma varivel de memria baseada na classe System.Drawing.Image, responsvel pela verificao, converso carregamento de imagens do sistema e no evento page_load, que como j mencionei disparado quando a pgina carregada. Escrevendo cdigos em C#: public class WebForm2 : System.Web.UI.Page { // criao da varivel im que se comportar como um objeto tipo image public System.Drawing.Image im; private void Page_Load(object sender, System.EventArgs e) { // carrega a imagem do disco para a varvel imim = System.Drawing.Image.FromFile(Request.PhysicalApplicationPath+"Canaletto.jpg");

} Escrevendo cdigos em Delphi.NET (Delphi.NET): procedure TWebForm2.Page_Load(sender: System.Object; e: System.EventArgs); // TODO: Put user code to initialize the page here // criao da varivel im que se comportar como um objeto tipo image var im:System.Drawing.Image; begin // carrega a imagem do disco

Delphi 2005 Delphi.Net

Visual Studio 2005 C#

Fbio Jos de Gondra Ramos Pgina 37 de 60

im := System.Drawing.Image.FromFile(Request.PhysicalApplicationPath+'Canaletto.jpg'); end; Exerccio 02 Monte uma aplicao capaz de ampliar a imagem de uma das obras contida na lista de obras de um dos artistas contido na listas de artistas, conforme esquema abaixo.

Artistas Antonio Cavaletto

Obras O Molhe A Ponte do Rialto As respigadeiras A primavera A arvore dos corvos

Jean-Franois Millet

Caspar David Friedrich

Soluo proposta: Para solucionar este exerccio existem diversas formas a depender da linha lgica escolhida pelo desenvolvedor. Eu resolvi utilizar dois labels, dois dropdownlists, dois buttons e um imagebutton. A pgina

Objeto Button1 Button2 DropDownList2 Label1 Label2

Propriedade Text ID ID Text ID Text Text ID

DropDownList1

Items

Valor Aplicar Aplicar Visualizar Visualizar Obras Autor: Obras: Autor Propriedades Membros Antonio Cavaletto JeanFranois Millet Caspar David Friedrich

Evento Aplicar_Click Visualizar _Click

Items Antonio Cavaletto JeanFranois Millet Caspar David Friedrich

Value Antonio Cavaletto Jean-Franois Millet Caspar David Friedrich

Delphi 2005 Delphi.NetID Imageurl Width Height

Visual Studio 2005 C#Miniatura Canaletto.JPG 60px 50px

Fbio Jos de Gondra Ramos Pgina 38 de 60

Miniatura _Click

ImageButton1

Escrevendo cdigos em C#:

public class WebForm1 : System.Web.UI.Page { // criao das variveis de ambiente public System.Drawing.Image im; public int escolha; private void miniatura_Click(object sender, System.Web.UI.ImageClickEventArgs e){im=System.Drawing.Image.FromFile(Request.PhysicalApplicationPath+obras.SelectedItem.ToString()+".jpg");

Response.Redirect(obras.SelectedItem.ToString()+".jpg"); } private void visualizar_Click(object sender, System.EventArgs e) { miniatura.ImageUrl = obras.SelectedItem.ToString()+".jpg"; } private void Aplicar_Click(object sender, System.EventArgs e) { obras.Items.Clear(); escolha = autores.SelectedIndex; switch (escolha) { case 0: { obras.Items.Add("O Molhe"); obras.Items.Add("A Ponte do Rialto"); break; } case 1: { obras.Items.Add("As Respigadeiras"); obras.Items.Add("A primavera"); break; } case 2: { obras.Items.Add("A arvore dos corvos"); break; } } } Escrevendo cdigos em Delphi.NET (Delphi.NET): procedure TWebForm1.miniatura_Click(sender: System.Object;e:System.Web.UI.ImageClickEventArgs ); var

Delphi 2005 Delphi.Net

Visual Studio 2005 C#

Fbio Jos de Gondra Ramos Pgina 39 de 60

im:System.Drawing.Image; begin im := System.Drawing.Image.FromFile(Request.PhysicalApplicationPath+obras.SelectedItem.ToString+'.jpg'); Response.Redirect(obras.SelectedItem.ToString+'.jpg'); end; procedure TWebForm1.visualizar_Click(sender: System.Object; e: System.EventArgs); begin miniatura.ImageUrl := obras.SelectedItem.ToString+'.jpg'; end; procedure TWebForm1.Aplicar_Click(sender: System.Object; e: System.EventArgs); begin obras.Items.Clear; case autores.SelectedIndex of 0:begin obras.Items.Add('O Molhe'); obras.Items.Add('A Ponte do Rialto'); end; 1:begin obras.Items.Add('As Respigadeiras'); obras.Items.Add('A primavera'); end; 2:begin obras.Items.Add('A arvore dos corvos'); end; end; end;

Capitulo VIII Trabalhando com bases de dadosUm dos objetivos do desenvolvimento de aplicaes Web poder trabalhar, (ler, incluir, excluir, atualizar), informaes armazenadas em servidores remotos. Para organizar estas informaes criam-se tabelas, onde, cada coluna apresenta suas caractersticas e reservada para guardar uma determinada informao. Assim, desta forma, se tivermos interesse de armazenar, por exemplo, o cpf de um cliente, seu nome, seu nascimento, seu peso, sua cidade, o cep e o estado criaremos a seguinte tabela:

Tabela de clientes: CPF 123.123.123-12 145.235.568-89 663.569.985-89 665.562.898-56 125.568.968-63 Note que: Nome Jose dos Santos Ana Fontes Jose dos Santos Ana Borges Antonio Bispo Nasciment o 20/01/1980 20/02/1986 14/05/1984 14/05/1984 18/12/1986 Peso 66 45 78 52 66 Cidade Cabrob Aracaju Aracaju Maca Aracaju Cep 50120-000 49056-120 48659-250 31120-000 49056-120 Estado PE SE AL RJ SE

Delphi 2005 Delphi.Net

Visual Studio 2005 C#

Fbio Jos de Gondra Ramos Pgina 40 de 60

Cada linha pertence a um determinado cliente; Existem valores que se repetem em determinadas colunas, porm as informaes armazenadas na coluna CPF no se repetem, isto , cada CPF pertence a um NICO cliente. As informaes armazenadas nas colunas CPF, Cep e Estado possuem um tamanho prdefinido; Na coluna peso seu preenchimento ser sempre numrico, na coluna estado ser sempre literal, o nascimento ser sempre uma data e as demais colunas podem receber tanto nmeros como literais. Com base nas notaes acima podemos concluir que as colunas possuem as seguintes caractersticas: Nome: Toda coluna possui um nome para identificao (CPF, Nome, Nascimento, Peso, Cidade, Cep e estado. Tipo: Toda coluna possui um tipo especfico. Tamanho: Toda coluna possui um tamanho mximo para armazenamento de informaes. Chave: Algumas colunas podero receber a identificao de chave de ndice o que lhe permite a unicidade dos dados. Nulao: Algumas colunas recebero um atributo que lhe permite permanecer sem valor mesmo aps a gravao dos dados. Observando as caractersticas acima podemos montar a estrutura responsvel pelo armazenamento de dados dos clientes, isto , a tabela de clientes: Chave Nome da coluna CPF Nome Nascimento Peso Cidade Estado Tipo da coluna Character Character Data Inteiro curto Character Character Tamanho da coluna 14 50 8 4 30 2 Aceita nulo

Para escrever tabelas para utilizao em web precisa-se de um tipo especial de aplicativo denominado SGBD (Sistema Gerenciador de Banco de Dados), Existem vrios SGBDs no mercado, todos eficientes capazes de administrar suas bases de dados e tabelas. Exemplos: MSSQL, MYSQL, Postgree, Oracle, etc... Para o nosso curso escolhi o MSSQL em sua verso 2000.

O MSSQL

Delphi 2005 Delphi.Net

Visual Studio 2005 C#

Fbio Jos de Gondra Ramos Pgina 41 de 60

Trata-se de um Sistema Gerenciador de Bancos de Dados, Relacionais, SGBDR, que funciona unicamente sob sistema operacional Windows NT. Para trabalhar com esta ferramenta a Microsoft fornece o ISQL, tanto em interface DOS quanto em interface Windows. Alm disso, podemos nos comunicar com o banco a partir de APIs do Windows, fazendo uso da camada de comunicao DBLibrary, ou via ODBC. A interface com o usurio pode ser construda em Visual Basic ou Visual C++, para acesso atravs da DB-Library (que d total controle sobre as funes do banco), ou via VB, VC++, Visual Fox Pro, Access, Excel, Word, para acesso via ODBC. Tambm podemos utilizar o acesso atravs de protocolo TCP/IP e linguagem HTML, caracterizando aplicaes de INTRA/INTER/EXTRANET; o acesso ao banco propriamente dito, entre a camada de conexo a bancos de dados e o Web Server, ser realizado via ODBC. Utilize o Enterprise Manager para criar administrar bases SQL-Server Criando uma base de dados:

Clique com o boto direito

Indique o nome da base

Indica o local padro:C:\Arquivos de programas\ Microsoft SQL Server\MSSQL\data \Demon_Data.MDF

Delphi 2005 Delphi.Net

Visual Studio 2005 C#

Fbio Jos de Gondra Ramos Pgina 42 de 60

Indica um novo local para criao da base Local onde base ser criada

Indica o local padro: C:\Arquivos de programas\ Microsoft SQL Server\MSSQL\data \Demon_Log.MDF

Indica um novo local para criao do log de erros

Local onde o log ser criado

Base criada

Criando uma tabela

Delphi 2005 Delphi.Net

Visual Studio 2005 C#

Fbio Jos de Gondra Ramos Pgina 43 de 60

Clique com o boto direito

Determina o campo chave

Tabela criada

Existe mais de uma forma acessar uma tabela, veremos agora uma delas: Projeto 11 Testando a existncia e a senha de um usurio

Delphi 2005 Delphi.Net

Visual Studio 2005 C#

Fbio Jos de Gondra Ramos Pgina 44 de 60

O objetivo deste exemplo verificar se o usurio existe na tabela acesso e se a senha digitada igual a constante na coluna senha da tabela;. Estrutura da tabela:

Insira 04 usurios: Usuario Gondra Fabio Ana Maria Senha Dragon Ramos 123456 121212 Nivel 0 1 2 1

Neste exemplo usei trs objetos labels, dois objetos textboxs, um objeto button, um BdpConnection e um BdbDataAdapter, o efeito desejado validar o usurio e sua senha mediante um click sobre o boto validar. A pgina:

Objeto Label1 Label2 Label3 Textbox1 Textbox2 Button1 BdpConnection BdbDataAdapter DataSet1 Dados para IL:

Propriedade Text Text ID ID Maxlength ID Maxlength TextMode Text ID Name Name Name

Valor Usurio: Senha: Resultado Usuario 10 Senha 6 Password Validar Validar Conexo Adaptador DSAcesso

Evento

Validar_click

Delphi 2005 Delphi.NetIL C# Delphi.NET Application ASP.NET Web C#Builder

Visual Studio 2005 C#Namespace cs11 pas11

Fbio Jos de Gondra Ramos Pgina 45 de 60

DiretrioC:\WebCurso\CSharp\Exemplo11 C:\WebCurso\Delphi.NET\Exemplo11

Application

ASP.NET Web Application Delphi for .NET

Estabelecendo a conexo Click com o boto direito sobre o BdpConnection: Adicione uma nova conexo (ADD); Indique o Database (a base de dados); Indique o HostName (o nome do servidor);

Teste a conexo Configurando o adaptador Click com o boto direito sobre o BdpDataAdapter e selecione Configure Data Adapter...:

Escolha a tabela acesso; Marque a opo Optimize; e click sobre Generate SQL:

Para se certificar que os dados esto disponveis click em Preview Data:

Delphi 2005 Delphi.Net

Visual Studio 2005 C#

Fbio Jos de Gondra Ramos Pgina 46 de 60

Em seguida gere o DataSet:

Escrevendo cdigos em C#: private void Page_Load(object sender, System.EventArgs e) { // Put user code to initialize the page here resultado.Text=""; } private void Validar_Click(object sender, System.EventArgs e) { Adaptador.Active=false;Adaptador.SelectCommand.CommandText="select * from acesso where usuario="+"'"+usuario.Text+"'";

Adaptador.Active=true; if (dsacesso.Tables["acesso"].Rows.Count ==0) { usuario.Text=""; resultado.Text="Usurio no existe!"; } else { resultado.Text=""; if (senha.Text !=(dsacesso.Tables["acesso"].Rows[0]["senha"].ToString())) {

Delphi 2005 Delphi.Net

Visual Studio 2005 C#

Fbio Jos de Gondra Ramos Pgina 47 de 60

resultado.Text="Senha invlida!"; } else { resultado.Text=""; Session["permissao"]=dsacesso.Tables["acesso"].Rows[0]["nivel"].ToString(); Server.Transfer("Menu.aspx"); } } } Escrevendo cdigos em Delphi.NET (Delphi.NET): procedure TWebForm1.Validar_Click(sender: System.Object; e: System.EventArgs); begin Adaptador.Active:=false; Adaptador.SelectCommand.CommandText:='select * from acesso where usuario='''+usuario.text+''''; Adaptador.Active:=true; if (dSAcesso.Tables['acesso'].rows.count = 0 ) then begin usuario.Text:=''; Resultado.Text:='Usurio no existe!'; end else begin resultado.Text:=''; if senha.Text (dSAcesso.Tables['acesso'].Rows[0]['senha'].ToString) then resultado.Text:='Senha invlida!' else begin resultado.Text:=''; session['permissao']:=dSAcesso.Tables['acesso'].Rows[0]['nivel'].ToString; server.Transfer('Menu.aspx'); end; end; end;

Delphi 2005 Delphi.Net

Visual Studio 2005 C#

Fbio Jos de Gondra Ramos Pgina 48 de 60

Projeto 12 Um menu Animado! O objetivo deste exemplo mostrar a interao entre scripts Java e ASP.Net com C# ou Delphi.Net. A pgina

Neste exemplo foram usados apenas objetos HTML com orientao aos objetos descritos na paleta HTML Elements. HTML Input Input HR DIV DIV SELECT Objeto Html textbox Html textbox Html horizontal rule Html Label Html Label Html ListBox Propriedade Name Name Size onmouseover onmouseover name onclick disabled name onclick disabled background onload onunload Valor Relgio message 3 abrecadastros() abremovimentos() opcadastro paginacadastros() True opcadastro paginacadastros() True Dock.jpg Start() KillClock()

SELECT LABEL DOCUMENT Dados para IL: IL C# Delphi.NET

Html ListBox Sem referncia

Application ASP.NET Web C#Builder

Application

Namespace cs12 pas12

DiretrioC:\WebCurso\CSharp\Exemplo12 C:\WebCurso\Delphi.NET\Exemplo12

ASP.NET Web Application Delphi for .NET

A pgina descrita a seguir compem codificao HTML utilizando-se de JAVASCRIPT:

Delphi 2005 Delphi.Net

Visual Studio 2005 C#

Fbio Jos de Gondra Ramos Pgina 49 de 60

Cadastros LivrosRevistas Almanaques

Clientes Fornecedores Movimentos LocaoDevoluo Compras

"MENU PRINCIPAL "

Delphi 2005 Delphi.Net

Visual Studio 2005 C#

Fbio Jos de Gondra Ramos Pgina 50 de 60

=

=

Delphi 2005 Delphi.Net

Visual Studio 2005 C#

Fbio Jos de Gondra Ramos Pgina 52 de 60

Projeto 13 Incluindo, excluindo e alterando dados em uma tabela Mtodo I Utilizando o Borland Data Provider. O objetivo deste exemplo montar uma pgina capaz de incluir, excluir ou alterar dados contidos em uma tabela mediante um click sobre o boto desejado, fazendo a conexo com objetos da paleta Borland Data Provider. Estrutura da tabela:

Salve a tabela com o nome de curso No esquea de liberar a permisso do usurio ASPNET ao dados da tabela. A pgina:

Delphi 2005 Delphi.Net

Visual Studio 2005 C#

Fbio Jos de Gondra Ramos Pgina 53 de 60

Objeto Label1 Label2 Label3 Label4 Label5 Label6 Textbox1 Textbox2 Textbox3

Propriedade Text Font bold Text Font bold Text Text Text Text ID ID ID ID

Dropdownlist1

Items

Image1 Button1 Button2 Button3 BdpConnection

Imageurl Text ID Text ID Text ID Name Name Connection Tables SQL Select command

BdbDataAdapter

SQL Update command

SQL Insert command SQL Delete command DataSet1 DBWebDataSource1 DBWebNavigator1 Dataset Name Name Datasource ID Dbdatasource Tablename ID Dbdatasource Tablename

DBWebGrid1 Dados para IL:

Valor Druidas Web-Systema true Cadastro de cursos true Cdigo: Descrio: Carga horria Valor wcodigo wdescricao wvalor wcarga Propriedades Membros Items Value 20 horas 20 horas 20 horas 40 horas 40 horas 40 horas 60 horas 60 horas 60 horas 80 horas 80 horas 80 horas .\images\druidas.gif Adicionar adicionar Remover remover Alterar alterar conexao adaptador conexao curso SELECT Codigo, Descricao, Valor, Carga_horaria FROM dbo.Curso UPDATE dbo.Curso SET Codigo = ?, Descricao = ?, Valor = ?, Carga_horaria = ? WHERE Codigo = ? INSERT INTO dbo.Curso (Codigo, Descricao, Valor, Carga_horaria ) VALUES ( ?, ?, ?, ?) DELETE FROM dbo.Curso WHERE Codigo = ? dscurso dscurso dadoscurso dscurso navegador dadoscurso Curso gradededados dadoscurso Curso

Evento

Adicionar_click Remover_clik Alterar_click

Delphi 2005 Delphi.Net

Visual Studio 2005 C#

Fbio Jos de Gondra Ramos Pgina 54 de 60

IL C# Delphi.NET

Application ASP.NET Web C#Builder

Application

Namespace cs13 pas13

DiretrioC:\WebCurso\CSharp\Exemplo13 C:\WebCurso\Delphi.NET\Exemplo13

ASP.NET Web Application Delphi for .NET

Escrevendo cdigos em C#: private void adiciona_Click(object sender, System.EventArgs e) { conexao.Open(); adaptador.Active=false; adaptador.InsertCommand.CommandText="INSERT INTO dbo.Curso (Codigo, Descricao, Valor, Carga_horaria ) VALUES ('"+wcodigo.Text+"', '"+wdescricao.Text+"', '"+wvalor.Text+"', '"+wcarga.SelectedValue+"')"; adaptador.InsertCommand.ExecuteNonQuery(); adaptador.SelectCommand.ExecuteReader(); adaptador.Active=true; dadoscurso.AutoRefresh=true; } private void remover_Click(object sender, System.EventArgs e) { conexao.Open(); adaptador.Active=false; adaptador.DeleteCommand.CommandText="DELETE FROM dbo.Curso WHERE Codigo = '"+wcodigo.Text+"'"; adaptador.DeleteCommand.ExecuteNonQuery(); adaptador.SelectCommand.ExecuteReader(); adaptador.Active=true; dadoscurso.AutoRefresh=true; } private void alterar_Click(object sender, System.EventArgs e) { conexao.Open(); adaptador.Active=false; adaptador.UpdateCommand.CommandText="UPDATE dbo.Curso SET Codigo = '"+wcodigo.Text+"', Descricao = '"+wdescricao.Text+"', Valor = '"+wvalor.Text+"', Carga_horaria = '"+wcarga.SelectedValue+"' WHERE Codigo = '"+wcodigo.Text+"'"; adaptador.UpdateCommand.ExecuteNonQuery(); adaptador.SelectCommand.ExecuteReader(); adaptador.Active=true; dadoscurso.AutoRefresh=true; } Escrevendo cdigos em Delphi.NET (Delphi.NET): procedure TWebForm1.alterar_Click(sender: System.Object; e: System.EventArgs); begin conexao.Open; adaptador.Active:=false; adaptador.UpdateCommand.CommandText:='UPDATE dbo.Curso SET Codigo = '''+wcodigo.Text+''', Descricao = '''+wdescricao.Text+''', Valor = '''+wvalor.Text+''',

Delphi 2005 Delphi.Net

Visual Studio 2005 C#

Fbio Jos de Gondra Ramos Pgina 55 de 60

Carga_horaria = ' Codigo = '''+wcodigo.Text+''''; adaptador.UpdateCommand.ExecuteNonQuery; adaptador.SelectCommand.ExecuteReader; adaptador.Active:=true; dadoscurso.AutoRefresh:=true; end;

''+wcarga.SelectedValue+'''

WHERE

procedure TWebForm1.remover_Click(sender: System.Object; e: System.EventArgs); begin conexao.Open; adaptador.Active:=false; adaptador.DeleteCommand.CommandText:='DELETE FROM dbo.Curso WHERE Codigo = '''+wcodigo.Text+''''; adaptador.DeleteCommand.ExecuteNonQuery; adaptador.SelectCommand.ExecuteReader; adaptador.Active:=true; dadoscurso.AutoRefresh:=true; end; procedure TWebForm1.adiciona_Click(sender: System.Object; e: System.EventArgs); begin conexao.Open; adaptador.Active:=false; adaptador.InsertCommand.CommandText:='INSERT INTO dbo.Curso (Codigo, Descricao, Valor, Carga_horaria ) VALUES ('''+wcodigo.Text+''', '''+wdescricao.Text+''', '''+wvalor.Text+''', '''+wcarga.SelectedValue+''')'; adaptador.InsertCommand.ExecuteNonQuery; adaptador.SelectCommand.ExecuteReader; adaptador.Active:=true; dadoscurso.AutoRefresh:=true; end; ATENO: No exemplo acima no foi tratada a condio de unicidade da chave do cdigo. Projeto 14 Incluindo, excluindo e alterando dados em uma tabela Mtodo II Utilizando Data Components O objetivo deste exemplo montar uma pgina capaz de incluir, excluir ou alterar dados contidos em uma tabela mediante um click sobre o boto desejado, fazendo a conexo com objetos da paleta Data Components. Estrutura da tabela: A mesma do exemplo anterior A pgina: Na pgina deste exemplo houve a substituio dos objetos Borland Data Provider por objetos Data Components e tambm inclui mais um label para indicar o status da conexo. Objetos Borland Data Provider BDPConnection BDPDataAdapter Objetos Data Components SQLConnection SQLDataAdapter

Delphi 2005 Delphi.Net

Visual Studio 2005 C#

Fbio Jos de Gondra Ramos Pgina 56 de 60

Objeto Label1 Label2 Label3 Label4 Label5 Label6 Label7 Textbox1 Textbox2 Textbox3

Propriedade Text Font bold Text Font bold Text ID Text Text Text Text ID ID ID ID

Dropdownlist1

Items

Image1 Button1 Button2

Imageurl Text ID Text ID

Valor Druidas Web-Systema true Cadastro de cursos true Status: Estado Cdigo: Descrio: Carga horria Valor wcodigo wdescricao wvalor wcarga Propriedades Membros Items 20 horas 20 horas 40 horas 40 horas 60 horas 60 horas 80 horas 80 horas .\images\druidas.gif Adicionar adicionar Remover remover

Evento

Value 20 horas 40 horas 60 horas 80 horas Adicionar_click Remover_clik

Delphi 2005 Delphi.Net

Visual Studio 2005 C#Text ID Name Name Name Name Datasource ID Dbdatasource ID Dbdatasource Alterar alterar conexao adaptador dscurso dadoscurso dscurso navegador dadoscurso gradededados dadoscurso

Fbio Jos de Gondra Ramos Pgina 57 de 60

Button3 SQLConnection SQLDataAdapter DataSet1 DBWebDataSource1 DBWebNavigator1 DBWebGrid1 Dados para IL: IL C# Delphi.NET

Alterar_click

Application ASP.NET Web C#Builder

Application

Namespace cs14 pas14

DiretrioC:\WebCurso\CSharp\Exemplo14 C:\WebCurso\Delphi.NET\Exemplo14

ASP.NET Web Application Delphi for .NET

Para trabalhar com SQL de forma literal necessrio incluir a biblioteca System.Data.SqlClient; A conexo com o servidor e base de dados deveram ser feitas de forma que fiquem disponveis para qualquer procedimento da aplicao, portanto dever ser estabelecida quando a pgina for carregada. Escrevendo cdigos em C#: Na clausula Using inclua: using System.Data.SqlClient; Na clausula Public inclua a varivel: public string conectar; No procedimento Page_Load: private void Page_Load(object sender, System.EventArgs e) { // Put user code to initialize the page here conectar="server=TITANIUM;database=Cursos;Trusted_connection=Yes"; conexao.ConnectionString = conectar; try { adaptador.SelectCommand.CommandText="SELECT * FROM CURSO"; conexao.Open(); estado.Text=System.String.Format("Status: Conectado a "+conexao.Database); adaptador.FillSchema(dscurso,SchemaType.Mapped,"curso"); adaptador.Fill(dscurso,"curso"); gradecurso.TableName="curso"; dadoscurso.AutoRefresh=true; } catch { estado.Text="Status: Falha na conexo!"; } }

Delphi 2005 Delphi.Net

Visual Studio 2005 C#

Fbio Jos de Gondra Ramos Pgina 58 de 60

Na clausula implementation private void adiciona_Click(object sender, System.EventArgs e) { conexao.Close(); adaptador.InsertCommand.CommandText="INSERT INTO dbo.Curso (Codigo, Descricao, Valor, Carga_horaria ) VALUES ('"+wcodigo.Text+"', '"+wdescricao.Text+"', '"+wvalor.Text+"', '"+wcarga.SelectedValue+"')"; conexao.Open(); adaptador.InsertCommand.ExecuteNonQuery(); dscurso.Reset(); adaptador.FillSchema(dscurso,SchemaType.Mapped,"curso"); adaptador.Fill(dscurso,"curso"); dadoscurso.AutoRefresh=true; } private void remover_Click(object sender, System.EventArgs e) { conexao.Close(); adaptador.DeleteCommand.CommandText="DELETE FROM dbo.Curso WHERE Codigo = '"+wcodigo.Text+"'"; conexao.Open(); adaptador.DeleteCommand.ExecuteNonQuery(); dscurso.Reset(); adaptador.FillSchema(dscurso,SchemaType.Mapped,"curso"); adaptador.Fill(dscurso,"curso"); dadoscurso.AutoRefresh=true; } private void alterar_Click(object sender, System.EventArgs e) { conexao.Close(); adaptador.UpdateCommand.CommandText="UPDATE dbo.Curso SET Codigo = '"+wcodigo.Text+"', Descricao = '"+wdescricao.Text+"', Valor = '"+wvalor.Text+"', Carga_horaria = '"+wcarga.SelectedValue+"' WHERE Codigo = '"+wcodigo.Text+"'"; conexao.Open(); adaptador.UpdateCommand.ExecuteNonQuery(); dscurso.Reset(); adaptador.FillSchema(dscurso,SchemaType.Mapped,"curso"); adaptador.Fill(dscurso,"curso"); dadoscurso.AutoRefresh=true; } Escrevendo cdigos em Delphi.NET (Delphi.NET): Na clausula Uses inclua: System.Data.SqlClient; Na clausula Public inclua a varivel: Conectar:string; No procedimento Page_Load: procedure TWebForm1.Page_Load(sender: System.Object; e: System.EventArgs);

Delphi 2005 Delphi.Net

Visual Studio 2005 C#

Fbio Jos de Gondra Ramos Pgina 59 de 60

begin // TODO: Put user code to initialize the page here //conectar:='integrated security=SSPI;data source=TITANIUM;persist security info=False;initial catalog=Cursos'; conectar:='server=TITANIUM;database=Cursos;Trusted_connection=Yes'; conexao.ConnectionString := conectar; try adaptador.SelectCommand.CommandText:='SELECT * FROM CURSO'; conexao.Open(); estado.Text:=System.String.Format('Status: Conectado a ',conexao.Database); adaptador.FillSchema(dscurso,SchemaType.Mapped,'curso'); adaptador.Fill(dscurso,'curso'); gradecurso.TableName:='curso'; dadoscurso.AutoRefresh:=true; except estado.Text:='Status: Falha na conexo!'; end; end; Na clausula implementation procedure TWebForm1.alterar_Click(sender: System.Object; e: System.EventArgs); begin conexao.Close(); adaptador.UpdateCommand.CommandText:='UPDATE dbo.Curso SET Codigo = '''+wcodigo.Text+''', Descricao = '''+wdescricao.Text+''', Valor = '''+wvalor.Text+''', Carga_horaria = '''+wcarga.SelectedValue+''' WHERE Codigo = '''+wcodigo.Text+''''; conexao.Open(); adaptador.UpdateCommand.ExecuteNonQuery(); dscurso.Reset(); adaptador.FillSchema(dscurso,SchemaType.Mapped,'curso'); adaptador.Fill(dscurso,'curso'); dadoscurso.AutoRefresh:=true; end; procedure TWebForm1.remover_Click(sender: System.Object; e: System.EventArgs); begin conexao.Close(); adaptador.DeleteCommand.CommandText:='DELETE FROM dbo.Curso WHERE Codigo = '''+wcodigo.Text+''''; conexao.Open(); adaptador.DeleteCommand.ExecuteNonQuery(); dscurso.Reset(); adaptador.FillSchema(dscurso,SchemaType.Mapped,'curso'); adaptador.Fill(dscurso,'curso'); dadoscurso.AutoRefresh:=true; end; procedure TWebForm1.adiciona_Click(sender: System.Object; e: System.EventArgs); begin conexao.Close(); adaptador.InsertCommand.CommandText:='INSERT INTO dbo.Curso (Codigo, Descricao, Valor, Carga_horaria ) VALUES ('''+wcodigo.Text+''', '''+wdescricao.Text+''', '''+wvalor.Text+''', '''+wcarga.SelectedValue+''')'; conexao.Open(); adaptador.InsertCommand.ExecuteNonQuery(); dscurso.Reset();

Delphi 2005 Delphi.Net

Visual Studio 2005 C#

Fbio Jos de Gondra Ramos Pgina 60 de 60

adaptador.FillSchema(dscurso,SchemaType.Mapped,'curso'); adaptador.Fill(dscurso,'curso'); dadoscurso.AutoRefresh:=true; end;