Apostila Iniciantes
Apostila Iniciantes
Apostila Iniciantes
Instrutores:
Breno Gontijo – [email protected]
Cláudio Júnior – [email protected]
Índice Analítico
Introdução ......................................................................................................1
Suítes .............................................................................................................1
Termos da Plataforma ..................................................................................2
Introdução .....................................................................................................4
Do HTML ao ASP.Net ..................................................................................4
Como o ASP.Net Funciona ..........................................................................6
Criando Páginas ASP.Net ............................................................................7
Mantendo o Estado de uma Página ASP.Net ............................................11
ViewState ...................................................................................................11
Importando Espaços de Nomes .................................................................13
Objeto SESSION ........................................................................................14
Vantagens Adicionais .................................................................................15
RequiredFieldValidator ..........................................................................99
CompareValidator ...............................................................................100
RangeValidator ...................................................................................101
CustomValidator ..................................................................................103
RegularExpressionValidator ...............................................................103
ValidationSummary .............................................................................105
Exemplos e Exercícios .........................................................................106
Vantagens ............................................................................................126
Problemas ............................................................................................126
Namespaces ........................................................................................127
Criando um Componente .....................................................................128
Usando o Componente ........................................................................129
Exemplos e Exercícios .........................................................................130
SOAP ...................................................................................................134
Criando um WebService .....................................................................134
Usando o WebService .........................................................................135
Curso de Introdução a Plataforma .Net FrameWork SDK 1
INTRODUÇÃO
SUÍTES
TERMOS DA PLATAFORMA
Capítulo 2 - ASP.NET
Introdução
Do HTML ao ASP.NET
Originalmente, os sites para a Web eram muito simples. Havia páginas somente
em HTML, por isso dizemos que eram aplicações estáticas. O que funcionava muito
bem para alguns sites como – Jornais, Exposição de Catálogos e Materiais
Didáticos, dentre outros.
O HTML evoluiu, já era possível criar uma interatividade com o usuário, mas um
conteúdo dinâmico ainda estava faltando. Então o processamento de servidor foi
introduzido, surgindo daí o modelo cliente/ servidor.
A Internet trabalha no modelo cliente/servidor. Isto é, dois computadores
trabalham juntos, enviando as informações de um lado para outro, para realizar uma
tarefa. Neste cenário as informações estão contidas no servidor, o cliente apenas faz
a solicitação daquilo que lhe é conveniente.
Curso de Introdução a Plataforma .Net FrameWork SDK 5
Neste cenário, o servidor não tem a mínima idéia do que o cliente esta fazendo,
a menos que este faça outra solicitação.
O ASP.Net trabalha em outro modo de comunicação entre clientes e servidores
Web, que é conhecido como modelo baseado em eventos. Isso quer dizer
que o servidor espera algo acontecer no cliente. Quando ocorre, o Servidor toma
medidas para realizar alguma funcionalidade.
Então podemos afirmar que o Servidor vai responder a suas ações. Se o cliente
clica em uma imagem ou seleciona um CheckBox, o Servidor exerce uma ação.
O ASP.Net funciona assim – detecta ações e as responde. Para isso o ASP.Net
conta com um processamento inteligente do lado cliente para simular um modelo
baseado em eventos.
Você deve estar questionando então, como o ASP.Net sabe o que está
acontecendo no cliente já que um script do lado cliente não pode interagir com o
código do lado servidor, e sabendo também que a única maneira de o cliente
comunicar-se como servidor é durante uma solicitação.
Bem, o ASP.Net inteligentemente limita esse problema. Ao utilizar o script do
lado cliente, o ASP.Net fornece informações sobre o que o cliente está fazendo as
solicitações, é como se o ASP.Net coloca-se alguns espiões no cliente, de modo que
o servidor seja informado sobre tudo que está acontecendo do lado do cliente.
Os espiões do ASP.Net são os scripts do lado do cliente, que não podem
interagir com o lado servidor, mas podem transmitir mensagens por meio de
postagens para o servidor.
Portanto, o ASP.Net faz essa união com o servidor e o cliente.
Este conceito que o ASP.Net implementa facilita a vida o programador, que não
precisa mais se concentrar em direcionar solicitações e respostas, o programador
fica livre para se concentrar na construção da lógica.
Você pode reagir às ocorrências do usuário imediatamente em vez de esperar
que os formulários sejam submetidos. E pode conhecer a estrutura da interface com
o usuário e como lidar com elas antecipadamente.
O ASP.Net realmente facilita a vida dos desenvolvedores.
Curso de Introdução a Plataforma .Net FrameWork SDK 6
Modelo Tradicional
Compila em código
de máquina
CÓDIGO APLICATIVO
Curso de Introdução a Plataforma .Net FrameWork SDK 7
Compila em
código de
máquina
CÓDIGO Aplicativo
MSIL com CLS
metadados
Maneira Convencional
using System;
class Primeiro {
// Parte renderizável
Console.WriteLine(VarMensagem);
}
// Parte programática
static String VarMensagem = “Meu Primeiro Exemplo!”;
}
csc Primeiro.cs
Será criado um arquivo: Primeiro.exe
Primeiro
6. O programa começa a ser executado, o momento é chamado de init.
7. É feito o render (desenho na tela do monitor) do que o programa previa que
deveria ser renderizado.
Maneira ASP.Net
Se você já instalou o .Net FrameWork SDK 1.0 em seu computador, então você
está pronto para criar seu primeiro programa na tecnologia ASP.Net.
Este nosso primeiro exemplo tem o mesmo objetivo do programa desenvolvido
para a maneira convencional, o programa exemplo vai renderizar na tela do monitor
de um cliente a mensagem - Meu Primeiro Exemplo! – que vem de um computador
servidor.
Para o exemplo usaremos apenas um único computador. Ou seja, o computador
servidor e o computador cliente serão o mesmo. Para que o cliente então possa
acessar o servidor (virtualmente falando), usaremos o endereço: http://127.0.0.1
no browser, ou também o endereço http://localhost.
<html>
<!—Parte RENDERIZAVEL -->
<form runat=”server”>
<asp:Label id=”saida”
Font-Name=”Arial”
Font-Italic=”True”
runat=”server”/>
</form>
http://127.0.0.1/cursonet/primeiro.aspx
ou
http://localhost/cursonet/primeiro.aspx
ViewState
Acompanhe a sintaxe:
runat=”server”
<form runat=”server”>
SERVIDOR
SOLICITAÇÃO
RETORNA HTML
CLIENTE PARA EXIBIÇÃO
TRATA DE EVENTOS
EXECUTA O CÓDIGO
DICA:
Importar um espaço de nome, porém, não importa os espaços
de nome abaixo dele. Somente as classes que pertencem a essa
interface são importadas.
Curso de Introdução a Plataforma .Net FrameWork SDK 14
Objeto SESSION
<html>
<form runat="server">
<asp:Panel id="panel1"
BackColor="#E0E0E0"
HorizontalAlign="Center"
Width="200"
runat="server">
<br/>
<asp:TextBox id="entrada"
BackColor="yellow"
Width="150"
runat="server"/>
<p>
<asp:Button id="bot01"
Text="- Enviar -"
OnClick="MetodoEnviar"
ToolTip="Escreva e Clique"
runat="server"/> </p>
<p>
<asp:Label id="saida"
Font-Name="Arial"
runat="server"/> </p>
</asp:Panel>
</form>
<script language="VB" runat="server">
public Sub MetodoEnviar(Obj As Object, ea As EventArgs)
Dim VarTemp As String
VarTemp = entrada.Text
Session.Add("VarSessao", VarTemp)
saida.Text = Convert.ToString(Session.Item("VarSessao"))
End Sub
</script>
</html>
Curso de Introdução a Plataforma .Net FrameWork SDK 15
Vantagens Adicionais
Capítulo 3 – Variáveis
Podemos dizer que uma variável é um espaço alocado na memória RAM para
ser utilizada por um ou mais processos que necessitam de armazenar ou manipular
alguma informação. Ou ainda, variáveis representam locais de armazenamento.
Essas variáveis são reconhecidas por um nome que lhe é atribuído.
As variáveis devem ser declaradas, assim terá um tipo associado a ela que
determinará que valores podem ser armazenados e manipulados.
O conteúdo de uma variável pode mudar no decorrer do programa.
Você pode dar o nome que quiser a uma variável, mas existem algumas
restrições como:
→ O nome deve conter letras, números, ou caracteres de sublinhado( _ );
→ Este nome deve conter no máximo 255 caracteres.
Como definido não podemos atribuir qualquer valor a uma variável, sem antes
defini-la.
using System;
Imports System
Tipos
Este tipo é um numero inteiro sem fração ou parte decimal. Por exemplo, o
número 1058 é um numero inteiro.
O tipo inteiro é subdividido em alguns subtipos. Veja a figura 3.1.1 que mostra
estes tipos de inteiro.
Tipo Descrição
byte Inteiro de 1 bit sem sinal (0 a 255)
sbyte Inteiro com sinal de 8 bits (-127 a 128)
int Inteiro de 32 bits com sinal (-2.147.483.648 a 2.147.483.147)
uint Inteiro de 32 bits sem sinal (0 a 4.294.967.295)
Inteiro com sinal de 64 bits (-9.223.372.036.854.775.808 a
long
9.223.372.036.854.775.807)
ulong Inteiro sem sinal de 64 bits (0 a 18.446.744.073.709.551.615)
short Inteiro com sinal de 16 bits (-32.768 a 32.767)
ushort Inteiro sem sinal de 16 bits (0 a 65.535)
Exemplos:
Esses tipos são usados para comparação. Portanto esses tipos só podem
assumir os valores verdadeiro ou falso.
Tipo Descrição
bool true ou false
Exemplos:
Tipo Descrição
char Um único caractere Unicode de 16 bits.
Exemplos:
using System;
public class CharTeste
{
public static void Main()
{
char VarTeste = (char)25;
Console.WriteLine(VarTeste);
}
}
Curso de Introdução a Plataforma .Net FrameWork SDK 20
As variáveis com este tipo possuem números com ponto flutuante utilizando o
padrão IEEE de 4 a 8 bytes.
Tipo Descrição
Ponto flutuante binário de 8 bytes ( ≅ 1.5 x 10 -45 a ≅ 1.7 x 10308 )
double
Este tipo tem uma precisão de 15 casas decimais.
Ponto flutuante binário de 4 bytes ( ≅ 1.5 x 10 -45 a ≅ 3.4 x 1038 )
float
Este tipo tem uma precisão de 7 casas decimais.
As operações com este tipo não geram erros, mas há alguns ressaltos que
devemos saber:
→ Se o valor retornado para a variável conter um número muito
pequeno, este valor torna-se zero.
→ Uma divisão por zero não causa um erro, mas é produzido um valor
infinito.
→ Operações de ponto flutuante devolvem NaN (Not a Number) para
sinalizar que aquele resultado da operação é indefinido. Portanto se um
dos operadores for NaN o resultado retornado será NaN.
Exemplos:
O tipo decimal representa com mais precisão números não inteiros e com um
valor muito alto.
Tipo Descrição
Ponto flutuante decimal de 128 bytes ( ≅ 1.5 x 10 -45 a ≅ 1.7 x 10308 )
decimal
Este tipo tem uma precisão de 28 casas decimais.
Exemplos:
Tipo Descrição
string Unicode com até 1 gigabyte de caractere.
Exemplos:
Tipo Descrição
\’ Apóstrofo
\” Aspas
\\ Barra invertida
\0 Zero binário ou nulo
\a Alerta
\b Retrocesso
\f Avanço de página
\n Salto de linha
\r Retorno de carro
\t Tabulação horizontal
\v Tabulação vertical
\uNNNN NNNN é o código em hexadecimal
Exemplos:
Este tipo é muito utilizado por programadores, é um termo geral para uma
variável que não é especificado como outro tipo de dados, por isso torna-se um tipo
universal.
Em certas situações torna-se indispensável atribuir e instanciar um objeto.
Tipo Descrição
object Atribuir a um objeto.
Exemplos:
Conversão de Valores
Caso precise forçar uma conversão mesmo que haja perda de informações, a
linguagem disponibiliza um operador com este recurso.
Exemplos:
Tipo Converte em
sbyte short, int, long, float, double, decimal
byte short, ushort, int, uint, long, ulong, float, double, decimal
short int, long, float, double, decimal
ushort int, uint, long, ulong, float, double, decimal
int long, float, double, decimal
uint long, ulong, float, double, decimal
long float, double, decimal
ulong long, double, decimal
char ushort, int, uint, long, ulong, float, double, decimal
float double
Exemplos:
Checked e Unchecked
Toda conversão pode causar erro , mas existe uma forma de forçar a conversão
sem que cause um erro. Para isso são utilizados o checked e o unchecked.
using System;
Operadores
Tipo Operador
aritméticos + - * / %
lógicos & | ^ ! ~ && ||
concatenação +
Incremento e decremento ++ --
deslocamento << >>
relacional < > <= >=
Igualdade == !=
atribuição = *= /= %= += <<= >>= &= ^=
condicional ?:
criação de objetos new
primários typeof sizeof is checked unchecked
O tipo enum é usado para declarar uma enumeração, um tipo distinto que
consiste em um jogo de constantes nomeadas chamadas a lista de enumerados.
Permite declarar tipos que contem diversos valores identificados pelo nome.
Um tipo de struct é um tipo de valor que pode conter construtores, constantes,
campos, métodos, propriedades, dentre outros. A declaração de um struct leva a
forma seguinte:
using System;
public struct Point
{
public int x, y;
// Initialize:
myPoint.x = 10;
myPoint.y = 20;
// Display results:
Console.WriteLine("My Point:");
Console.WriteLine("x = {0}, y = {1}", myPoint.x, myPoint.y);
}
}
Curso de Introdução a Plataforma .Net FrameWork SDK 27
New
ª Para classes:
NomeClasse NomeInstancia = new NomeClasse( );
ª Para structs:
using System;
class NewTest
{
struct MyStruct
{
public int x;
public int y;
public MyStruct (int x, int y)
{
this.x = x;
this.y = y;
}
}
class MyClass
{
public string name;
public int id;
public MyClass ()
{
}
// Valores de saída:
Console.WriteLine("Valores Default:");
Console.WriteLine(" Membros do Struct: {0}, {1}",
Location1.x, Location1.y);
Console.WriteLine(" Membros da Classe: {0}, {1}",
Employee1.name, Employee1.id);
// Valores de saída:
Console.WriteLine("Valores Inicializados pelo construtor:");
Console.WriteLine(" Struct members: {0}, {1}",
Location2.x, Location2.y);
Console.WriteLine(" Class members: {0}, {1}",
Employee2.name, Employee2.id);
}
}
Curso de Introdução a Plataforma .Net FrameWork SDK 29
Arrays
Um tipo array é uma matriz de valores do mesmo tipo, que é criada em tempo
de execução, podendo ser acessada por meio de um índice.
A declaração do array sempre faz o uso de um colchete( [ ] ) depois do tipo da
variável. O uso da instrução new sempre deve ser utilizado, pois é obrigatório.
O tipo array pode ter diversas dimensões, o tamanho desta é definido pelo
desenvolvedor, mas devemos saber que o primeiro índice é sempre zero.
No tipo array devemos sempre inicializar seus elementos, pois é obrigatório
também.
Veja abaixo a forma de sintaxe para a declaração de arrays.
string [ , ] ElementoVetor = new string[3, 3] {{“ab”, “ac”, “bc”} , {“ab”, “ac”, “bc”}};
Exemplos e Exercícios:
Exemplo 01 – comparação.
using System;
public class Comparacao
{
public static void Main( )
{
// Exemplos com números.
Console.Write("10 == 10: ");
Console.WriteLine(10 == 10);
Console.Write("10 != 10: ");
Console.WriteLine(10 != 10);
using System;
public class OperacoesMat
{
public static void Main( )
{
int Valor1; // forma normal
int Valor2 = new int ( ); // forma alternativa
Valor1=Valor2=10;
using System;
public class Logicos
{
public static void Main( )
{
bool VarA = true;
bool VarB = !true;
Tipos
Toda variável deve ter um tipo que define qual o tipo de informações ou dados
lhe convém. Para isso, toda variável tem um conjunto de regras que determina o seu
uso.
Nesta linguagem os tipos são divididos em cinco categorias diferentes: inteiros,
números de ponto flutuante, booleanas, datas e strings.
Tipo Descrição
Exemplos:
Tipo Descrição
Pode ser somente true ou false. ( tambem conhecido como
Boolean
System.Boolean )
Exemplos:
Tipo Descrição
Um único caractere Unicode. ( também conhecido como
char
System.Char)
Exemplos:
Option Strict On
' ...
Dim CharVar As Char
CharVar = "Z" ' Não pode converte de string para caractere com Option Strict On.
CharVar = "Z"C ' Sucesso em atribuir um único caractere a variável CharVar.
Curso de Introdução a Plataforma .Net FrameWork SDK 35
Os números com parte fracionária ou não inteiros são definidos como ponto
flutuante.
Nesse tipo também há subtipos, para que o desenvolvedor possa adequar
melhor o tipo de informação com o espaço reservado na memória.
A figura 3.2.4 mostra os subtipos do ponto flutuante.
Tipo Descrição
Um número de 4 bytes com ponto de fração decimal.
((-3.4028235E+38 a -1.401298E-45 para valores negativos) e
Single
(1.401298E-45 a 3.4028235E+38 para valores positivos)).
( tambem conhecido como System.Single )
Exemplos:
Esse tipo armazena valores de datas e horas. O tipo de dados real é chamado
DateTime. As datas podem ser armazenadas em muitas formas diferentes, como por
exemplo, “13/1/2002”, “segunda-feira, 13 de janeiro de 2002 6:02:58PM”, dentre
outras.
Para o Visual Basic.net tudo isso é data e é fácil de fazer a conversão de uma
para outra.
Você deve estar perguntando – porque não armazenar essas datas em strings.
Bem você pode se assim preferir, mais perde algumas funções que o Visual
Basic.Net traz para este tipo de dado como - somar dias, horas e minutos.
Vejamos abaixo a figura que mostra alguns detalhes do tipo Date.
Curso de Introdução a Plataforma .Net FrameWork SDK 36
Tipo Descrição
São armazenados em números inteiros longos com 8 bytes que
Date representam uma data na faixa de 1/1/1 até 31/12/9999. Com
relação às horas valem de 0:00:00 até 23:59:59.
Exemplos:
Tipo Descrição
string Aproximadamente 2 bilhões de caracteres.
Exemplos:
Este tipo é muito utilizado por programadores, é um termo geral para uma
variável que não é especificado como outro tipo de dados, por isso torna-se um tipo
universal.
Em certas situações torna-se indispensável atribuir e instanciar um objeto.
Tipo Descrição
object Atribuir a um objeto.
Exemplos:
Conversão de Valores
Tipo Converte em
Byte Byte, Short, Integer, Long, Decimal, Single, Double.
Short Short, Integer, Long, Decimal, Single, Double.
Integer Integer, Long, Decimal, Single, Double.
Long Long, Decimal, Single, Double.
Decimal Decimal, Single, Double.
Single Single, Double.
Double Double
Char String
Qualquer Tipo Object
Curso de Introdução a Plataforma .Net FrameWork SDK 38
Função Converte em
Retorna o numero correspondente a tabela
Asc
ASCII
Cbool Boolean
Cbyte Byte
CChar Char
Cdate Date
CDbl Double
Cdec Decimal
Chr Char
Cint Integer
CLng Long
Cobj Object
Cshort Short
CSng Single
CStr String
Ctype Converte para o tipo especificado
Str String
Val Converte para o tipo numérico especificado.
Exemplos:
Dim A, B, C As Integer
Dim Check As Boolean
A=5
B=5
Check = CBool(A = B) ' Check recebe True.
C=0
Check = CBool(C) ' Check recebe False.
Curso de Introdução a Plataforma .Net FrameWork SDK 39
Operadores
Operador Função
^ Exponencial
+,- Adição e subtração
*,/ Multiplicação e Divisão
\ Divisão ( 10 \ 3 = 3.333333 )
Mod Módulo ( 6 mod 4 = 2 )
& , + (string) Concatenação
=, < >, <, > Igual a, não-igual a, maior que, menor que
<=, >= Menor ou igual a, Maior ou igual a
=, ^=, *=, /=, \=, +=, -=, &= Atribuição
NOT, AND, OR, XOR Lógico: Negação, E, Ou, Ou exclusivo
BitNot, BitAnd, BitOr, BitVor Lógico Binário: Negação, E, Ou, Ou exclusivo
TypeOf ... Is, Is, Like Relacional
Exemplos
Dim A As Integer = 10
Dim B As Integer = 8
Dim C As Integer = 6
Dim myCheck As Integer
myCheck = (A And B) ' Retorna 8.
myCheck = (A And C) ' Retorna 2.
myCheck = (B And C) ' Retorna 0.
Dim myTest As Boolean
myTest = A > B And B > C ' Retorna True.
myTest = B > A And B > C ' Retorna False.
Curso de Introdução a Plataforma .Net FrameWork SDK 42
Array
Para atribuir um valor aos elementos de um array, você deve montar um looping
ou atribuir um valor especifico a cada elemento do array.
Vejamos abaixo a atribuição nos dois casos comentados.
Imports System
Module Atribuir
Sub Main ( )
Dim i As Integer
Dim VarValores(5) As Integer
For i=0 to 5
VarValores(i) = i * 2
Next i
End Sub
End Module
Imports System
Module Atribuir
Sub Main ( )
Dim VarCores ( ) As String = {“azul”, “preto”, “branco”, “verde”}
Dim VarNomes ( 3 ) As String
VarNomes (0) = “Adriana”
VarNomes (1) = “Beatriz”
VarNomes (2) = “Juliana”
VarNomes (3) = “Maria”
End Sub
End Module
Curso de Introdução a Plataforma .Net FrameWork SDK 43
Arrays Multidimensionais
O array também pode ser declarado com várias dimensões. Muito utilizado
quando precisamos de uma matriz.
Vejamos abaixo a sintaxe deste array.
Imports System
Module Atribuir
Sub Main ( )
Dim VarMatriz ( , ) As Integer = {{1, 2, 3}, {4, 5, 6}}
Dim I As Integer
Dim J As Integer
For I=0 to 2
For J=0 to 2
Console.WriteLine("VarMatriz("& I &", "& J &"): "& VarMatriz(I, J))
Next J
Next I
End Sub
End Module
Exemplos e Exercícios
Para C# If ( condição ) {
Instruções;
}
Para C# If ( condição ) {
Instruções;
}
else if ( condição ) {
Instruções;
}
else {
Instruções;
}
exemplo vb: Console.Write( iif ( idade >= 18 , “Maior idade” , “Menor idade” ) )
Curso de Introdução a Plataforma .Net FrameWork SDK 48
Exemplo:
switch ( Estado )
{
case “PR” : Console.WriteLine(“Viagem para Curitiba”); break;
end select
Exemplo:
end select
Curso de Introdução a Plataforma .Net FrameWork SDK 49
Para c#: do
{
Instrucoes;
}
while ( condição );
exemplo c#: do
{
Console.WriteLine( Numero );
}
while ( Numero < 10 );
Para vb: Do
Instruções
Loop Until condição
Exemplo vb: Do
Console.WriteLine( Numero )
Loop Until numero < 10
Curso de Introdução a Plataforma .Net FrameWork SDK 52
Exemplos e Exercícios:
Console.WriteLine( );
Console.WriteLine(" ---------------- Instrução SWITCH ------------------- ");
Console.WriteLine( );
Console.WriteLine(" ---------------- Instrução WHILE ------------------- ");
int Condicao = 1;
Console.Write("Forneça um valor para repetição de 3 - 7 :");
Leia = Console.ReadLine( );
VarNumero = int.Parse( Leia );
int Final =1;
if (VarNumero > 2) {
if (VarNumero < 8) {
Final = VarNumero;
}
else { Final = 2;
}
}
Console.WriteLine( Final==2 ? "Valor Incorreto" : "Valor Correto" );
Console.WriteLine()
Console.WriteLine(" ---------------- Instrução SELECT CASE ------------ ")
Console.WriteLine()
Console.WriteLine(" ---------------- Instrução WHILE ------------------- ")
Dim Condicao As Integer = 1
Console.Write("Forneça um valor para repetição de 3 - 7 :")
Leia = Console.ReadLine()
VarNumero = Integer.Parse(Leia) 'Transforma string em inteiro
Dim Final As Integer = 1
if Final = 2 then
Console.WriteLine("Valor Incorreto")
Else : Console.WriteLine("Valor Correto")
End if
End Sub
End Module
Curso de Introdução a Plataforma .Net FrameWork SDK 55
Exercício
NÃO
Contador é < 10 ? Fecha
Sim
Sim
NÃO
Escreve Contador
Incrementa o Contador
Curso de Introdução a Plataforma .Net FrameWork SDK 57
Capítulo 5 - Formatação
Formatação de Números
VariavelNumerica.ToString(“StringFormatação”, ReferenciaCultural);
VarValor.ToString(“c”, null);
Curso de Introdução a Plataforma .Net FrameWork SDK 58
using System;
using System.Globalization;
Caractere Descrição
N ou n Representação Numérica
P ou p Formato de porcentagem
Assegura que um número convertido
R ou r para string, terá o mesmo formato se
convertido de volta para número.
X ou x Formatação para Hexadecimal
Curso de Introdução a Plataforma .Net FrameWork SDK 60
Função Descrição
Module FormatVB
Sub Main()
Dim VarValor As Double = 15252.8573
Dim VarMostra As String
Dim br As New CultureInfo("pt-BR")
VarValor = 0.25
Console.WriteLine("---- FormatPercent ----")
VarMostra = FormatPercent(VarValor, 2, -1, -1, -2)
Console.WriteLine("VarMostra = " & VarMostra)
VarMostra = FormatPercent(VarValor, 7, -1, -1, -2)
Console.WriteLine("VarMostra = " & VarMostra)
VarMostra = FormatPercent(VarValor + 0.10, 2, -1, -1, -2)
Console.WriteLine("VarMostra = " & VarMostra)
End Sub
End Module
Curso de Introdução a Plataforma .Net FrameWork SDK 62
Caractere Descrição
N ou n Representação Numérica
P ou p Formato de porcentagem
Assegura que um número convertido
R ou r para string, terá o mesmo formato se
convertido de volta para número.
X ou x Formatação para Hexadecimal
Caractere Descrição
Exemplos e Exercícios.
Imports System
Imports Microsoft.VisualBasic.Strings
Module FormatVB
Sub Main()
Dim VarValor As Double = 15252.8573
Dim VarMostra As String
End Sub
End Module
Curso de Introdução a Plataforma .Net FrameWork SDK 65
Para um aplicativo que é utilizado em vários paises, devemos ter o cuidado para
o tratamento de datas e horas.
É necessária a formatação para as aplicações que necessitam das informações
de datas e horas para executar determinadas funções.
VariavelDateTime.ToString(“StringFormatação”, ReferenciaCultural);
VarData.ToString(“dddd”, null);
Curso de Introdução a Plataforma .Net FrameWork SDK 66
Como visto acima, o método ToString( ) possui como parâmetros: uma string de
formatação e uma expressão para a referencia Cultural.
Acompanhe na figura 5.3.1 os caracteres de formatação correspondente para a
manipulação de datas e horas.
using System;
using System.Globalization;
}
}
Curso de Introdução a Plataforma .Net FrameWork SDK 68
Método Descrição
Add Adiciona um valor a um TimeSpan.
AddDays Soma um numero de dias a uma data.
AddHours Soma um numero de horas a uma hora.
AddMonths Soma um numero de meses a uma data.
AddYears Soma um numero de anos a uma data.
Subtract Subtrai um valor de uma data e hora.
ToString Converte uma data e hora em uma string.
Compara as datas. Se as datas forem iguais o método retorna 0.
Compare
Se a primeira data for maior retorna 1, senão retorna -1.
Exibe o numero de dias que o mês possui. Para isso o método
DaysInMonth
exige de parâmetro o ano e o mês.
Parse Cria uma string com a data e a hora na formatação especificada.
Propriedade Descrição
Now Exibe a data e a hora atual do servidor.
Today Exibe a data atual do Servidor.
Date Exibe a data com o valor setado para meia-noite.
Day Exibe o dia de uma data.
DayOfWeek Exibe o dia da semana, sendo: 0-Domingo, 1-Segunda, ...
DayOfYear Exibe o dia do ano, sendo de 1 até 366.
Hour Exibe a hora.
Minute Exibe os minutos.
Month Exibe o mês de uma data.
Second Exibe os segundos.
Year Exibe o ano de uma data.
Curso de Introdução a Plataforma .Net FrameWork SDK 69
Exemplos e Exercícios
using System;
Console.WriteLine("Método DaysInMonth");
for(int I=1; I<=12; I++)
{
VarDia = DateTime.DaysInMonth(2002,I);
Console.WriteLine("Nº dias do mês "+I+" é igual a: "+VarDia);
}
Console.WriteLine("");
Console.WriteLine("Método Parse");
VarMostra = DateTime.Parse(DateTime.Now.ToString()).ToString();
Console.WriteLine(VarMostra);
Console.WriteLine("");
Console.WriteLine("Método AddDays");
VarData = DateTime.Today;
Console.WriteLine(VarData.AddDays(5));
Console.WriteLine("");
Console.WriteLine("Método DayOfWeek");
Console.WriteLine(VarData.DayOfWeek);
int diaSemana = Convert.ToInt32(VarData.DayOfWeek);
Console.WriteLine(diaSemana);
Console.WriteLine("");
Console.WriteLine("Método DayOfYear");
Console.WriteLine(VarData.DayOfYear);
}
}
Curso de Introdução a Plataforma .Net FrameWork SDK 70
VariavelDateTime.ToString(“StringFormatação”, ReferenciaCultural)
VarData.ToString(“dddd”, null)
Como visto acima, o método ToString( ) possui como parâmetros: uma string de
formatação e uma expressão para a referencia Cultural.
Curso de Introdução a Plataforma .Net FrameWork SDK 71
Imports System
Imports System.Globalization
Module FormDataC
Sub Main( )
Dim VarMostra As String
Dim br As New CultureInfo("pt-BR")
Dim fr As New CultureInfo("fr-FR")
Dim us As New CultureInfo("en-US")
Dim VarData As new DateTime(2001,02,19,13,25,20)
Console.WriteLine("---- Formatos de Datas USA ---")
VarMostra = VarData.ToString("dd",us)
Console.WriteLine("ToString('dd') = "& VarMostra)
VarMostra = VarData.ToString("dddd",us)
Console.WriteLine("ToString('dddd') = "& VarMostra)
VarMostra = VarData.ToString("MMM",us)
Console.WriteLine("ToString('MMM') = "& VarMostra)
VarMostra = VarData.ToString("yyyy",us)
Console.WriteLine("ToString('yyyy') = "& VarMostra)
Console.WriteLine()
Formato Descrição
DateFormat.GeneralDate Exibe a data e a hora. Este é o padrão.
DateFormat.LongDate Exibe a data completa.
DateFormat.ShortDate Exibe a data no formato curto.
DateFormat.LongTime Exibe a hora completa.
DateFormat.ShortTime Exibe a hora no formato 24 horas. Exemplo: hh:mm.
Propriedade Descrição
Now Exibe a data e a hora atual do servidor.
Today Exibe a data atual do Servidor.
Date Exibe a data com o valor setado para meia-noite.
Day Exibe o dia de uma data.
DayOfWeek Exibe o dia da semana, sendo: 0-Domingo, 1-Segunda, ...
DayOfYear Exibe o dia do ano, sendo de 1 até 366.
Hour Exibe a hora.
Minute Exibe os minutos.
Month Exibe o mês de uma data.
Second Exibe os segundos.
Year Exibe o ano de uma data.
Método Descrição
Add Adiciona um valor a um TimeSpan.
AddDays Soma um numero de dias a uma data.
AddHours Soma um numero de horas a uma hora.
AddMonths Soma um numero de meses a uma data.
AddYears Soma um numero de anos a uma data.
Subtract Subtrai um valor de uma data e hora.
ToString Converte uma data e hora em uma string.
Compara as datas. Se as datas forem iguais o método retorna 0.
Compare
Se a primeira data for maior retorna 1, senão retorna -1.
Exibe o numero de dias que o mês possui. Para isso o método
DaysInMonth
exige de parâmetro o ano e o mês.
Parse Cria uma string com a data e a hora na formatação especificada.
Curso de Introdução a Plataforma .Net FrameWork SDK 76
Exemplos e Exercícios
Module FormNewDataVB
Sub Main( )
Dim VarDataNow As DateTime = DateTime.Now
Dim VarMostra As String
Evento pode ser dito como uma ocorrência significativa no aplicativo que deve
ser tratada pelo código. Ou ainda, um evento é um conjunto de instruções que
ocorrem quando uma determinada ação é realizada pelo usuário.
Esta tecnologia permite ao desenvolvedor associar os eventos ao código da
aplicação. Para isso estudaremos três eventos importantes.
Evento - Page_Load
<html>
<form runat="server">
<asp:Label id="saida"
runat="server"/>
<p align="center">
<asp:Button id="bot01"
Text=" - Verificar - "
OnClick="bot01_Clique"
runat="server"/>
</p>
<asp:Label id="verifica"
runat="server"/>
</form>
Evento - OnClick
Evento - OnSelectedIndexChanged
...
<asp: DropDownList id = ”Identidade”
AutoPostback = “True”
OnSelectedIndexChanged = “NomeDoMetodo”
Runat=”server”/>
....
<html>
<form runat="server">
<asp:Label id="saida"
Text = "Selecione itens abaixo"
runat="server"/>
<p align="center">
<asp:DropDownList id="Dd1"
AutoPostback="true"
OnSelectedIndexChanged="MetodoDd1"
runat="server">
<asp:ListItem Value="VB"> Visual Basic.Net </asp:ListItem>
<asp:ListItem Value="CS"> C # </asp:ListItem>
<asp:ListItem Value="JS"> J# </asp:ListItem>
<asp:ListItem Value="delphi"> Delphi </asp:ListItem>
<asp:ListItem Value="Java"> Java </asp:ListItem>
</asp:DropDownList>
</p>
<p align="center">
<asp:TextBox id="saida_dd1"
BackColor="yellow"
runat="server"/>
</p>
</form>
TextBox
<html>
<form runat="server">
<br> <br>
<asp:TextBox id="entrada"
AutoPostBack="true"
BackColor="yellow"
MaxLength="12"
TextMode="Password"
OnTextChanged="MetodoText"
runat="server"/>
<p> Pressione ENTER apos digitar </p>
<p>
<asp:Label id="saida"
Font-Name="verdana"
runat="server"/> </p>
</form>
<script Language="C#" runat="server">
public void MetodoText(Object sender, EventArgs ea)
{
String Temp = entrada.Text;
saida.Text = Temp;
}
</script>
</html>
Curso de Introdução a Plataforma .Net FrameWork SDK 86
Label
<asp:Label id=”Identidade”
Text=”Texto”
runat=”server”/>
Button
Use o controle Button para criar um botão de clique na sua página de Web.
Você pode criar um botão Submit ou um botão de comando.
Um botão Submit não tem um nome de comando (especificado pela
propriedade CommandName) associado com o botão, este controle simplesmente
posta a página Web de volta para o servidor. O default deste controle é Submit.
Você pode prover para este controle o evento de Clique programado para que um
controle as ações possa ser executado quando o botão Submit for clicado.
Um botão de comando tem uma identificação associada com o botão, fixado
pela propriedade CommandName. Isto lhe permite criar múltiplos botões de
controle em uma página Web , porque é possível determinar qual botão o usuário
clicou. Você também pode usar a propriedade CommandArgument com um botão de
comando para prover uma informação adicional sobre o comando a ser executado.
<asp:Button id=”Identidade”
Text=”Título”
OnClick=”Metodo-Controle”
Runat=”server”/>
<html>
<form runat="server">
<asp:Label id="saida"
runat="server"/>
<p align="center">
<asp:Button id="bot01"
Text=" - Contador - "
OnClick="bot01_Clique"
runat="server"/>
</p>
</form>
DropDownList
<asp:DropDownList id=”Identidade”
AutoPostBack=”true/false”
OnSelectedIndexChanged=”Metodo-a-disparar”
runat=”server”/>
<asp:ListItem Value=”Valor” Selected=”true/false”>
Texto
</asp:LIstItem>
</asp:DropDownList>
<html>
<form runat="server">
<p align="center">
<asp:DropDownList id="Dd1"
BackColor="yellow"
AutoPostBack="true"
OnSelectedIndexChanged="MetodoEscreve"
runat="server">
<asp:ListItem Value="CSharp"> Curso Microsoft C# </asp:ListItem>
<asp:ListItem Value="VB"> Curso Microsoft Visual Basic.Net
</asp:ListItem>
<asp:ListItem Value="JSharp"> Curso Microsoft J# </asp:ListItem>
<asp:ListItem Value="Asp"> Curso Microsoft Asp.Net </asp:ListItem>
<asp:ListItem Value="Plataforma"> Curso Microsoft Plataforma .Net
</asp:ListItem>
<asp:ListItem Value="Delphi"> Curso Borland Delphi </asp:ListItem>
</asp:DropDownList>
<br><br>
<asp:TextBox id="saida"
Width="400"
Rows="6"
HorizontalAlign="center"
TextMode="MultiLine"
BackColor="#EEEEEE"
runat="server"/>
<br><br>
<asp:Button id="bot01"
Text="Limpar Campo"
OnClick="MetodoLimpar"
runat="server"/>
</p>
</form>
ListBox
<asp:ListBox id=”Identidade”
Rows=”3”
SelectionMode=”Multiple”
runat=”server”>
<asp:ListItem Value=”Valor” Selected=”true/false”> Item 1 </asp:ListItem>
<asp:ListItem Value=”Valor” Selected=”true/false”> Item 2 </asp:ListItem>
<asp:ListItem Value=”Valor” Selected=”true/false”> Item 3 </asp:ListItem>
<asp:ListItem Value=”Valor” Selected=”true/false”> Item 4 </asp:ListItem>
<asp:ListItem Value=”Valor” Selected=”true/false”> Item 5 </asp:ListItem>
</asp:ListBox>
CheckBox
O controle CheckBox cria uma caixa de cheque no Web Forms que permite o
usuário trocar entre verdadeiro ou falso o estado. Você pode especificar para exibir a
legenda no controle, fixando a propriedade Text. A propriedade TextAlign serve
para especificar o lado onde a legenda deve aparece.
Para determinar se o controle CheckBox é true, teste a propriedade Checked.
O evento CheckedChanged recebe um estimulo quando o estado do controle
CheckBox muda, para postar até ao servidor. Você pode prover um estimulo para o
evento CheckedChanged executar uma tarefa específica quando o estado do
CheckBox sofrer alguma mudança.
Através de falta, o controle CheckBox não posta a forma automática até ao
servidor quando o usuário clicar. Para habilitar a postagem automática, fixe a
propriedade AutoPostBack para true.
Vamos acompanhar a sintaxe do controle CheckBox.
Curso de Introdução a Plataforma .Net FrameWork SDK 90
<asp:CheckBox id=”Identidade”
AutoPostBack=”true / false”
Text=”Titulo”
TextAlign=”Right / Left”
Checked=”True / false”
OnCheckedChanged=”Metodo-disparar”
runat=”server”/>
CheckBoxList
<asp:CheckBoxList id="CheckBoxList1"
AutoPostBack="True|False"
CellPadding="Pixels"
DataSource='<% databindingexpression %>'
DataTextField="DataSourceField"
DataValueField="DataSourceField"
RepeatColumns="ColumnCount"
RepeatDirection="Vertical|Horizontal"
RepeatLayout="Flow|Table"
TextAlign="Right|Left"
OnSelectedIndexChanged="Metodo-disparar"
runat="server">
<asp:ListItem value="value"
selected="True|False">
Text
</asp:ListItem>
</asp:CheckBoxList>
Curso de Introdução a Plataforma .Net FrameWork SDK 91
RadioButton
<asp:RadioButton id="RadioButton1"
AutoPostBack="True|False"
Checked="True|False"
GroupName="GroupName"
Text="label"
TextAlign="Right|Left"
OnCheckedChanged="Metodo-disparar"
runat="server"/>
RadioButtonList
<asp:ListItem Text="label"
Value="value"
Selected="True|False" />
</asp:RadioButtonList>
Curso de Introdução a Plataforma .Net FrameWork SDK 92
Hyperlink
Propriedades Descrição
<asp:HyperLink id="HyperLink1"
NavigateUrl="url"
Text="HyperLinkText"
ImageUrl="url"
Target="window"
runat="server"/>
OU
<asp:HyperLink id="HyperLink1"
NavigateUrl="url"
ImageUrl="url"
Target="window"
runat="server">
Text
</asp:HyperLink>
Panel
NOTA
ª O controle de Painel não é exigido para agrupar controles como
RadioButton e CheckBox.
<asp:Panel id="Panel1"
BackImageUrl="url"
HorizontalAlign="Center|Justify|Left|NotSet|Right"
Wrap="True|False"
runat="server">
</asp:Panel>
Curso de Introdução a Plataforma .Net FrameWork SDK 94
Exemplos e Exercícios.
<html>
<form id="form1" method="post" runat="server" >
<p> <font face="arial" size="4"> Digite seu Nome: </font>
<asp:TextBox id="nome" runat="server" >
</asp:TextBox> </p> <p>
<asp:Button id="botao01" runat="server" Text="Incluir nome na lista" width="175"
Height="25" OnClick="Incluir"> </asp:Button> </p> <p>
<asp:Button id="botao02" runat="server" Text="Excluir nome da lista" width="175"
Height="25" OnClick="Excluir"> </asp:Button> </p> <p>
<asp:Button id="botao03" runat="server" Text="Limpar nome(s) da Lista"
width="175" Height="25" OnClick="Limpar"> </asp:Button></p> <p>
<asp:Button id="botao04" runat="server" Text="Ordenar a Lista" width="175"
Height="25" OnClick="Ordenar"> </asp:Button> </p> <p>
<asp:ListBox id="RecebeNome" runat="server" width="175" Height="150">
</asp:ListBox>
<asp:Label id="saida" runat="server">Veja ao lado a lista ordenada: </asp:Label>
<asp:ListBox id="saiObj" runat="server" width="175" Height="150">
</asp:ListBox> </p>
</form>
<script language="C#" runat="server">
public void Page_Load(object sender, EventArgs ea)
{
if (!IsPostBack)
{
nome.Text="foi atualizada";
}
}
contador=RecebeNome.Items.Count;
if (contador > 0)
{
for(int i=0; i<contador; i++)
{
objVetor.Add(RecebeNome.Items[i].Value);
}
int a=0;
bool condicao = true;
while ( contador > a )
{
for(int j=a, i=a+1; i < contador; i++)
{
if ( objVetor[j].ToString().CompareTo(objVetor[i].ToString()) > 0 )
{
string temp;
temp=objVetor[i].ToString();
objVetor[i] = objVetor[j];
objVetor[j] = temp;
condicao = false;
}
}
if (condicao != false)
{
a++;
}
condicao=true;
}
if (saiObj != null)
{
saiObj.Items.Clear();
}
</script>
</html>
Curso de Introdução a Plataforma .Net FrameWork SDK 96
Componente Descrição
Verifica se um campo requerido está em
RequiredFieldValidator
branco.
<asp:RequiredFieldValidator
id="ProgrammaticID"
ControlToValidate="ProgrammaticID of control to validate"
InitialValue="value"
ErrorMessage="Message to display in ValidationSummary control"
Text="Message to display in control"
ForeColor="value"
BackColor="value" …
runat="server" >
</asp:RequiredFieldValidator>
<html>
<form runat="server">
Name:
<asp:TextBox id="Text1"
Text="Enter a value"
BackColor="yellow"
runat="server"/>
<asp:RequiredFieldValidator id="RequiredFieldValidator1"
ControlToValidate="Text1"
Text="Campo Requerido"
runat="server"/> <p>
<asp:Button id="Button1"
runat="server"
Text="Validate"/>
</form>
</html>
Curso de Introdução a Plataforma .Net FrameWork SDK 100
<asp:CompareValidator
id="Identificação"
ControlToValidate="controle determinado para a verificação"
ValueToCompare="value"
ControlToCompare="value"
Type="DataType"
Operator="Operator Value"
ErrorMessage="mensagem de erro"
Text="mensagem de erro para o controle de verificação"
ForeColor="value"
BackColor="value" …
runat="server" >
</asp:CompareValidator>
<html>
<form runat="server">
<p align="center">
Digite um valor maior ou igual a 10:
<asp:TextBox id="entrada"
BackColor="yellow"
runat="server"/> <br/> <br/>
<asp:Button id="Bot01"
BackColor="green"
Text="- Validar -"
OnClick="MetodoValidar"
CausesValidation="False"
runat="server"/> <br/> <br/>
<asp:Label id="saida"
runat="server"/>
<asp:CompareValidator id="Comparar"
ControlToValidate="entrada"
ValueToCompare="10"
Type="Integer"
Operator="GreaterThanEqual"
runat="server"/> <br/> </p>
</form>
Operador Descrição
Tipo Descrição
Currency Valores monetários.
Date Valores de data.
Double Valores de números fracionários.
Integer Valores de números inteiros.
String Valores de string
RangeValidator
CustomValidator
<asp:CustomValidator
id="IdentidadeControle"
ControlToValidate="Controle-a-Validar"
ClientValidationFunction="ClientValidateID"
OnServerValidate="ServerValidateID"
ErrorMessage="Mensagem de Erro"
Text="Mensagem de visualização do controle"
ForeColor="valor"
BackColor="valor" …
runat="server" >
</asp:CustomValidator>
RegularExpressionValidator
</asp: RegularExpressionValidator>
Código:
<asp:TextBox id="TextBox1"
runat="server"/>
<asp:RegularExpressionValidator id="RegularExpressionValidator1"
ControlToValidate="TextBox1"
ValidationExpression="\d{5}"
Display="Static"
EnableClientScript="false"
ErrorMessage="O Código deve conter 5 Dígitos"
runat="server"/>
<p>
<asp:Button text="- Validar Código -"
OnClick="ValidateBtn_Click"
runat="server"/>
</p>
</form>
</body>
</html>
Curso de Introdução a Plataforma .Net FrameWork SDK 105
Caractere(s) Significado
Todos os caracteres, exceto ., $, ^, {, [, (, |, ), *,
Caracteres Regulares
+, ? e \, são identificados por eles próprios.
| Significa or lógico.
\ Um caractere de escape.
ValidationSummary
<asp:ValidationSummary
id="IdentidadeControle"
DisplayMode="BulletList | List | SingleParagraph"
EnableClientScript="true | false"
ShowSummary="true | false"
ShowMessageBox="true | false"
HeaderText="Titulo da Mensagem"
runat="server"/>
Curso de Introdução a Plataforma .Net FrameWork SDK 106
Exemplos e Exercícios
<html>
<head>
<title>Projeto .Net FrameWork SDK 1.0</title>
</head>
<form runat="server">
Nome:</td>
<td width="4%"> </td>
<td width="80%">
<asp:TextBox id="txtNome"
BackColor="yellow"
Width="250"
runat="server"/>
</td>
</tr>
<tr>
<td width="15%" align="right">
<asp:RegularExpressionValidator id="rev1"
ControlToValidate="txtEmail"
ForeColor="yellow"
ErrorMessage="Entre com um e-mail válido"
ValidationExpression="\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"
runat="server">
*
</asp:RegularExpressionValidator>
<asp:RequiredFieldValidator id="rfemail"
ControlToValidate = "txtEmail"
ForeColor="yellow"
ErrorMessage = "Entre com dados no campo E-MAIL."
runat="server">
*
</asp:RequiredFieldValidator>
Curso de Introdução a Plataforma .Net FrameWork SDK 107
e-mail:</td>
<td width="4%"> </td>
<td width="80%">
<asp:TextBox id="txtEmail"
BackColor="yellow"
Width="200"
runat="server"/>
</td>
</tr>
<tr>
<td width="11%" align="right">curso:</td>
<td width="4%"> </td>
<td width="85%">
<asp:DropDownList id="txtCurso"
BackColor="yellow"
Width="200"
AutoPostBack="true"
runat="server">
<asp:ListItem Value="101"> 101 - Ciência da Computação </asp:ListItem>
<asp:ListItem Value="102"> 102 - Matemática Computacional </asp:ListItem>
<asp:ListItem Value="201"> 201 - Fisioterapia </asp:ListItem>
<asp:ListItem Value="202"> 202 - Odontologia </asp:ListItem>
<asp:ListItem Value="301"> 301 - Administração </asp:ListItem>
</asp:DropDownList>
</td>
</tr>
<tr>
<td width="15%" align="right">
<asp:RequiredFieldValidator id="rfsenha"
ControlToValidate = "txtSenha"
ForeColor="yellow"
ErrorMessage = "Entre com dados no campo SENHA."
runat="server">
*
</asp:RequiredFieldValidator>
senha:</td>
<td width="4%"> </td>
<td width="80%">
<asp:TextBox id="txtSenha"
BackColor="yellow"
Width="200"
TextMode="password"
runat="server"/>
</td>
</tr>
</table>
Curso de Introdução a Plataforma .Net FrameWork SDK 108
<br><br>
<table width="75%" border="0" align="center">
<tr>
<td width="33%">
<div align="center">
<asp:Button id="bot1"
Text="Cadastrar"
width="120"
runat="server"/>
</div>
</td>
<td width="33%">
<div align="center">
<asp:Button id="bot2"
Text="Limpar Formulário"
CausesValidation="False"
runat="server"/>
</div>
</td>
<td width="34%">
<div align="center">
<asp:Button id="bot3"
Text="Voltar"
width="120"
CausesValidation="False"
runat="server"/>
</div>
</td>
</tr>
</table>
<br><br>
<p>
<asp:ValidationSummary id="vs1"
HeaderText = "Algo errado! Veja abaixo:"
DisplayMode="BulletList"
ForeColor="white"
runat="server"/>
</p>
</form>
</body>
</html>
Curso de Introdução a Plataforma .Net FrameWork SDK 109
Capítulo 8 - ADO.NET
Vantagens do ADO.NET
ª System.Data
ª System.Data.OleDb
ª System.Data.SqlTypes
ª System.Data.SqlClient
OleDb
Objeto Descrição
OleDbConnection Define a abertura da conexão.
Provedor Plataforma
SQLOLEDB Microsoft OLE DB Provider for SQL Server
MSDAORA Microsoft OLE DB Provider for Oracle
Microsoft.Jet.OLEDB.4.0 OLE DB Provider for Microsoft Jet
Página ASP.NET
ADO.NET
OLE DB
SQL
Objeto Descrição
SqlConnection Define a abertura da conexão.
DataSet
Usando OleDb
Using System.Data.OleDb;
OleDbConnection conn;
conn = new OleDbConnection (“Provider = SQLOLEDB; server=NomeDoServidor;
Database=NomeDoDatabase; user id=NomeUsuario; Pwd=senha” );
conn.Open( );
Imports System.Data.OleDb
Dim conn As OleDbConnection
conn = New OleDbConnection (“Provider = SQLOLEDB; server=NomeDoServidor;
Database=NomeDoDatabase; user id=NomeUsuario; Pwd=senha” )
conn.Open( )
Usando SqlClient
Using System.Data.SqlClient;
SqlConnection conn;
conn = new SqlConnection ("Data Source=localhost;Integrated Security=SSPI;Initial Catalog=northwind");
conn.Open( );
Imports System.Data.SqlClient
Dim conn As SqlConnection
conn = New SqlConnection ("Data Source=localhost;Integrated Security=SSPI;Initial Catalog=CBD")
conn.Open( )
Curso de Introdução a Plataforma .Net FrameWork SDK 113
DataReader
conn.Open( )
Dr = cmd.ExecuteReader( )
Do While Dr.Reader( )
TextBox1.Text += Dr(“ProductName”) & “ - ” & Dr(“UnitPrice”) & vbCrLf
Loop
Dr.Close( )
conn.Close( )
DR = cmd.ExecuteReader(CommandBehavior.CloseConnection);
While (Dr.Reader() )
{
TextBox1.Text += Dr[“Matricula”] + “ - ” + Dr[“Nome”] + “\n”;
}
Dr.Close( );
conn.Close( );
objda.Fill(objds, "Listar");
return objds;
Incluir Dados
INSERT INTO NomeTabela (Campo1, Campo2, CampoN) VALUES (Valor1, Valor2, ValorN)
Matricula = “101245”
Nome = “Juliana Avila”
conn.Open( )
cmd = New OleDbCommand(InstrucaoSql, conn)
cmd.ExecuteNonQuery( )
conn.Close( )
Excluir Dados
Esta operação é tão necessária e utilizada quanto as outras estudadas até este
momento.
Porem devemos tratar a exclusão com muita cautela e segurança. Antes da
implantação de um aplicativo que se faz uso desta instrução, devemos criar um
banco de dados de teste para executar a operação de exclusão.
Matricula = “101245”
conn.Open( )
cmd = New OleDbCommand(InstrucaoSql, conn)
cmd.ExecuteNonQuery( )
conn.Close( )
Atualizar Dados
Matricula = “101245”
Nome = “Luciana Silva”
conn.Open( )
cmd = New OleDbCommand(InstrucaoSql, conn)
cmd.ExecuteNonQuery( )
conn.Close( )
Curso de Introdução a Plataforma .Net FrameWork SDK 118
DataGrid
<AlternatingItemStyle ForeColor="Blue"/>
<EditItemStyle BackColor="Yellow"/>
<FooterStyle BorderColor="Gray"/>
<HeaderStyle BorderColor="Gray"/>
<ItemStyle Font-Bold="True"/>
<PagerStyle Font-Name="Ariel"/>
<SelectedItemStyle BackColor="Blue"/>
</asp:DataGrid>
<html>
<script runat="server">
Dim i As Integer
For i = 0 To 99
dr = dt.NewRow()
dr(0) = i
dr(1) = "Item " + i.ToString()
dr(2) = 1.23 *(i + 1)
dt.Rows.Add(dr)
Next i
End Function
If CheckBox1.Checked Then
ItemsGrid.PagerStyle.Mode = PagerMode.NumericPages
Else
ItemsGrid.PagerStyle.Mode = PagerMode.NextPrev
End If
End Sub
</script>
Curso de Introdução a Plataforma .Net FrameWork SDK 120
<body>
<form runat="server">
<HeaderStyle BackColor="#00aaaa">
</HeaderStyle>
<PagerStyle Mode="NextPrev">
</PagerStyle>
<Columns>
<asp:BoundColumn
HeaderText="Numero"
DataField="IntegerValue"/>
<asp:BoundColumn
HeaderText="Item"
DataField="StringValue"/>
<asp:BoundColumn
HeaderText="Valor"
DataField="CurrencyValue"
DataFormatString="{0:c}">
<ItemStyle HorizontalAlign="right">
</ItemStyle>
</asp:BoundColumn>
</Columns>
</asp:DataGrid> <br>
<asp:CheckBox id="CheckBox1"
Text="Modo de Paginação"
AutoPostBack="true"
runat="server"/>
</form>
</body>
</html>
Curso de Introdução a Plataforma .Net FrameWork SDK 121
Exemplos e Exercícios
<html>
<head>
<title>Trabalhando com SQL Server 2000 e asp.net </title>
</head>
<body>
<form id="form1" runat="server" >
<p>
<font face="arial" size="5">
<strong> Lê um banco de dados com SQLDataReader </strong>
</font> </p>
<p>
<asp:Button id="but1"
runat="server"
Text="Ler banco de dados "
OnClick="Ler_db" >
</asp:Button> </p>
<p>
<asp:TextBox id="saida"
runat="server"
TextMode="MultiLine"
Width="650"
Height="265" >
</asp:TextBox> </p>
</form>
</body>
</html>
Curso de Introdução a Plataforma .Net FrameWork SDK 122
Response.Write(escreva+cont.ToString());
Response.Write("</b> </font>");
string caminho=Server.MapPath("..//db//projeto01.mdb");
cont = escreva.Length;
total = cont - 25;
Response.Write(escreva);
Response.Write("</b> </font>");
w=1;
while(w<total)
{
Response.Write(" ");
w++;
}
Capítulo 9 - Componentes
Introdução a componentes
Componentes podem ser definidos como objetos que podem ser utilizados
repetidamente em aplicativos diferentes. Normalmente caracterizam um objeto real.
Um componente é uma forma inteligente de utilizar em diversos aplicativos uma
rotina desenvolvida em uma determinada linguagem, como C++, Visual C, Visual
Basic ou Delphi. Normalmente são arquivos DLL ou EXE que contem classes,
objetos e propriedades que são manipulados dentro do código.
A plataforma .Net acabou com o incomodo de ter que registrar as DLLs. Agora
não há mais a necessidade de registrar os componentes. O papel do Registry do
Windows não afetará em nada essas rotinas.
Vantagens
Problemas
Namespaces
Para termos uma integração com os objetos tipo Page, ou seja, as páginas
.aspx, a compilação do componente deve ser feita em um arquivo .DLL. Neste caso
o disparo é dado pelo CLR quando seu enviroment (no caso o Asp.Net) recebe um
GET de solicitação de página .ASPX, com ou sem o identificador _viewstate.
Assim, com o statement da definição da página, é criado um objeto de uma
classe que está num arquivo .DLL, que é instanciado e ligada ao objeto tipo Page.
Para que esta ligação aconteça é preciso que a classe seja organizada dentro
de um conjunto chamado namespace.
Assim, um programa que define uma classe Aluno pode ser colocado em um
namespace NamesAluno com a sintaxe descrita abaixo:
} End class
} End Namespace
Não existe uma ligação entre o namespace e um arquivo .DLL. Pois estes
arquivos podem conter classes de vários namespace, e um namespace pode ter
classes em diferentes arquivos .DLL. Enfim, o namespace é um agrupamento lógico
e não físico.
No inicio do arquivo que define a criação de uma nova classe, que faz uso de
objetos de outras classes, devemos importar estes objetos adicionando nas
primeiras linhas a sintaxe mostrada abaixo:
Criando um Componente
namespace conexao {
using System;
using System.Data;
using System.Data.OleDb;
objcomm.Fill(objds, "dsvMostra");
return objds;
}
}
}
3. este comando cria um arquivo .DLL que agora poderá ser utilizado em uma
página .ASPX.
Curso de Introdução a Plataforma .Net FrameWork SDK 129
Usando o Componente
<html>
<form runat="server">
<h1 align="center"> Lista de Telefones </h1>
<p>
<asp:Panel id="panel1"
BackColor="white"
HorizontalAlign="center"
width="100%"
height="100"
runat="server">
<asp:DataGrid id="dgLista"
Width="400"
BackColor="Gainsboro"
BorderColor="lightGray"
ShowFooter="false"
CellPadding="4"
CellSpacing="1"
Font-Name="arial"
Font-Size="9pt"
HeadetStyle-BackColor="Gray"
runat="server"/>
</asp:Panel>
</p>
</form>
myCaminho=Server.MapPath("..//db//projeto01.mdb");
mySql="SELECT codigo_cli, nome, mail FROM TCliente";
dgLista.DataSource = dsvp.Tables["dsvMostra"].DefaultView;
dgLista.DataBind();
}
</script>
</html>
Curso de Introdução a Plataforma .Net FrameWork SDK 130
Exemplos e Exercícios
Imports System
Namespace Componente
End Namespace
<html>
<form runat="server">
<asp:Panel id="panel1"
BackColor="#E0E0E0"
HorizontalAlign="Center"
Width="200"
runat="server">
<br/> <br/>
<asp:TextBox id="entrada1"
BackColor="yellow"
Width="150"
runat="server"/>
<p>
<asp:TextBox id="entrada2"
BackColor="yellow"
Width="150"
runat="server"/> </p>
<p>
<asp:Button id="bot01"
Text=" + "
OnClick="MetodoEnviar"
ToolTip="Forneça os Valores e Clique"
runat="server"/>
<asp:Button id="bot02"
Text=" - "
OnClick="MetodoEnviar"
ToolTip="Forneça os Valores e Clique"
runat="server"/>
<asp:Button id="bot03"
Text=" * "
OnClick="MetodoEnviar"
ToolTip="Forneça os Valores e Clique"
runat="server"/>
<asp:Button id="bot04"
Text=" / "
OnClick="MetodoEnviar"
ToolTip="Forneça os Valores e Clique"
runat="server"/> </p>
<p>
<asp:Label id="saida"
Font-Name="Arial"
runat="server"/> </p>
<br/> <br/>
</asp:Panel>
</form>
Curso de Introdução a Plataforma .Net FrameWork SDK 132
try {
VarValor1 = double.Parse(entrada1.Text);
VarValor2 = Convert.ToDouble(entrada2.Text);
switch (VarSinal) {
case " + ": Somar ObjSoma = new Somar( );
VarResultado = ObjSoma.calcular(VarValor1, VarValor2);
saida.Text = VarResultado.ToString( );
break;
Imports System
Imports System.Web.Services
Dim dt As DateTime
End Function
End Class
Curso de Introdução a Plataforma .Net FrameWork SDK 134
SOAP
SOAP que significa Simple Object Access Protocol, é um vocabulário XML que
descreve chamadas de função e seus parâmetros.
O pacote SOAP enviado ao servidor contém o nome da função e seus
parâmetros, codificados em XML de acordo com um esquema convencionado, como
você pode ver na caixa de texto superior. Quando o pacote SOAP alcança o
servidor, ASP.NET o reconhece, analisa o nome do método e seus parâmetros no
pacote, cria o objeto e faz a chamada. Ele toma o valor de retorno desse método,
formata-o em XML e retorna o XML para o cliente.
Criando um WebService
Vamos ver como criar um WebService simples, que faz apenas um cálculo de
soma entre dois números inteiros.
Para facilitar o exercício, vamos considerar que o cliente e os servidores são
apenas uma única máquina, e que o URL do servidor1 e do servidor2 é 127.0.0.1.
using System;
using System.Web.Services;
http://127.0.0.1/webteste/somaserv.asmx
Vamos a compilação:
wsdl /out:Somaserv.cs
/n:WebSoma
http://127.0.0.1/webteste/Somasrv.asmx?wsdl
Usando o WebService
End Sub
</script>
</html>
Curso de Introdução a Plataforma .Net FrameWork SDK 137
Referências Bibliográficas
Damasceno Jr, Américo. Aprendendo ASP.Net com C#. Editora Érica, 2001.