Publicado por: juarezsilva | novembro 24, 2009

C# Sem Mistério – Obter nome da Página anterior – ASPNet

Olá,

Usando a linguagem C#, para se obter o nome da página anterior em aspnet use a seguinte sintaxe dentro do Page_Load:

if( !Page.IsPostBack)
{
string PaginaAnterior = Request.UrlReferrer;
}

É isso ai. C# é Simples, direto e sem mistério.

Publicado por: juarezsilva | novembro 12, 2009

C# sem Mistério – Logout usando FormsAuthentication

Olá,

Quando o controle de acesso (login) de sua aplicação é baseada em FormsAuthentication, uma das necessidades mais comum é fazer o Logout ou Log Of (como cada um gosta de chamar). O Fato é que para não obrigarmos nossos usuários sairem da aplicação e chamá-la novamente apenas para trocar de usuário por exemplo, temos que adicionar o recurso de Log Of , ou seja, matar a sessão do FormsAuthentication atual e eliminarmos a instância do HttpContext.

Para isso bastar criarmos o código necessário e fazermos a devida chamada em qualquer objeto de ação, LinkButton, Button. etc:

void FazerLogout()
{

HttpContext.Current.Response.Cookies.Clear();

HttpContext.Current.Response.Clear();

FormsAuthentication.SignOut();
FormsAuthentication.RedirectToLoginPage();

}

C# sem Mistério.

Publicado por: juarezsilva | novembro 12, 2009

Oracle sem Mistério – DELETE FROM SELECT

Nem sempre é fácil fazer uma deleção, então segue abaixo algumas possíveis aplicações do comando DELETE do Oracle.

Sintaxe básica do DELETE
Deletar todas as tuplas

 

DELETEorDELETE FROM
;

 

CREATE TABLE t ASSELECT *FROM all_tables;

SELECT COUNT(*)

FROM t;


DELETE FROM t
;

COMMIT;

SELECT COUNT(*)

FROM t;

 

Deletar linhas selecionas

 

DELETE FROMWHERE ;

 

CREATE TABLE t ASSELECT *FROM all_tables;

SELECT COUNT(*)

FROM t;

DELETE FROM t

WHERE table_name LIKE ‘%MAP’;

COMMIT;

SELECT COUNT(*)

FROM t;

 

Deletar as linhas resultante de um SELECT

 

DELETE FROM (

 

CREATE TABLE t ASSELECT *FROM all_tables;

SELECT COUNT(*)

FROM t;

DELETE FROM (SELECT * FROM t WHERE table_name LIKE ‘%MAP’);

SELECT COUNT(*)

FROM t;

 

Deletar com retorno de cláusula de condição

 

DELETE FROM (

 

CREATE TABLE t ASSELECT *FROM all_tables;

set serveroutput on

DECLARE

r  urowid;

BEGIN

DELETE FROM t

WHERE rownum = 1

RETURNING rowid INTO r;

dbms_output.put_line(r);

END;

/

 

Deleção restrita por partição DELETE FROMPARTITION
;

 

DELETE FROM sales PARTITION (q1_2001_invoices);
Deleção de dados de uma base de dados remota DELETE FROM@

 

DELETE FROM t@remote_db;

É isso ai. Espero ter ajudado.

Publicado por: juarezsilva | novembro 11, 2009

C# sem mistério – IFormatProvider

IFormatProvider para Números [C#]

Este exemplo mostra como converter float para string e string para float usando IFormatProvider. Para utilizar o IFormatProvider você precisa utilizar primeiro a instância do  CultureInfo.

Obter a informação da CultureInfo não variável (Invariant)  ou específica

Invariant culture é um tipo especial de cultura que é culture-insensitive. Você poderia usar esta cultura quando você precisar de um resultado independe em relação a cultura padrão que estiver setada, exemplo: quando você formatar ou passar valores através de um arquivo XML. A invariant culture está internamente associada com o idioma Inglês. Para obter a instância da invariant CultureInfo utilize a propriedade stática CultureInfo.In­variantCulture.

Para uma instância CultureInfo específica utilize o método estático CultureInfo.Get­CultureInfo com o nome da Cultura específica. Exemplo: para o idioma Alemão: CultureInfo.GetCultureInfo("de-DE").

Formatando e convertendo número usando IFormatProvider

Uma vez que você tem a instância da CultureInfo use a propriedade CultureInfo.Num­berFormat para obeter o IFormatProvider para números (o objeto  NumberFormatInfo)

[C#]

// formatando float para string
float num = 1.5f;
string str = num.ToString(CultureInfo.InvariantCulture.NumberFormat);        // "1.5"
string str = num.ToString(CultureInfo.GetCultureInfo("de-DE").NumberFormat); // "1,5"

[C#]

// convertendo para float uma string
float num = float.Parse("1.5", CultureInfo.InvariantCulture.NumberFormat);
float num = float.Parse("1,5", CultureInfo.GetCultureInfo("de-DE").NumberFormat);
Publicado por: juarezsilva | novembro 11, 2009

String.Format(“{0}”, “formatting string”};

Olá,

Navegando pela internet e até pela própria experiência como desenvolvedor, percebi que uma das ações mais penosas para um desenvolver é saber como formatar um determinado tipo de dado. Em Dot.Net apesar de existir formas simples de aplicar este recurso (Formatar Valores) quase não se encontra um guia de referência para sabermos as formas possíveis de formatação.  Consultando outros blogs e fórum e site sobre C# e DotNet tentei montar um Guia de Referência para Formatação. Então vamos ao que interessa.

Então porque não termos argumentos de formatação contendo parâmetros, especificando qual tipo de dados você que formatar? ou seja, podemos ter uma lista de dados e outra lista dizendo como quero que estes dados sejam formatados, a idéia é bem simples não?

Todos os objetos CLR tem um método padrão chamado ToString() que retorna o valor do objeto representado em formato string. O método ToString pode aceitar um parâmetro do tipo string o qual especifica como o valor do objeto deve ser formatado.  A string de formatação do valor vem depois da posição, por exemplo, “{0:##}”. o texto dentro das chaves segue o seguinte formato {Índice do Argumento[,Alinhamento][:string de formatação]}. Se o valor do alinhamento for positivo, se o texto será alinhado a direita o resto do espaço será preenchido com o tamanho do campo especificado, se for negatio será alinhado a esquerda.

FORMATANDO STRING

Não há muito o que ser aplicado em uma string. Apenas o alinhamento, que ainda é opcional, pode ser aplicado.

Exemplo Saída
String.Format(“–{0,10}–”, “test”); –      test–
String.Format(“–{0,-10}–”, “test”); –test      –

FORMATANDO NÚMEROS

A formatação numérica depende do idioma que está configurada no computador, ou seja, depende da Cultura setada.

Especificador Tipo Formato Saída valor em(double 1.2345) Saída valor em(int -12345)
c currency {0:c} £1.23 -£12,345.00
d decimal(whole number) {0:d} System.FormatException -12345
e exponent / scientific {0:e} 1.234500e+000 -1.234500e+004
f fixed point {0:f} 1.23 -12345.00
g general {0:g} 1.2345 -12345
n number {0:n} 1.23 -12,345.00
r round trippable {0:r} 1.23 System.FormatException
x hexadecimal {0:x4} System.FormatException ffffcfc7

Formatação de número (Customizada)

Especificador Tipo Formato Saída(double 1234.56)
0 caso não haja valor suficiente é preenchido com zeros {0:00.000} 1234.560
# mesmo que o “0″ só que não preenche com zeros {0:#.##} 1234.56
. separador de decimal {0:0.0} 1234.6
, separador de milhar {0:0,0} 1,235
% percentage {0:0%} 123456%

Pode se também adicionar a formatação completa de um número, com por exemplo incluir ao mesmo tempo o separador de milhar e o separador de decimal:

String.Format("{0:R$#,##0.00;(R$#,##0.00);Valor Negativo}", valor);

A saída será “R$ 1,240.00″ se for passado o valor 1243.56.  Já a saída será o mesmo formato que está entre os parênteses se o valor for negativo “(R$1,240.00)”, e a saída ainda poderá ser a string “Valor Negativo” se o valor for zero.

Formatando Datas

O formado da data é totalmente dependente da cultura informada. O Exemplo abaixo está usando a cultura UK.

Especificador tipo Saída(Junho 8, 1970 12:30:59)
d Short Date 08/06/1970
D Long Date 08 Junho 1970
t Short Time 12:30
T Long Time 12:30:59
f Full date and time 08 Junho 1970 12:30
F Full date and time (long) 08 Junho 1970 12:30:59
g Default date and time 08/06/1970 12:30
G Default date and time (long) 08/06/1970 12:30:59
M Day / Month 8 Junho
r RFC1123 date string Mon, 08 Jun 1970 12:30:59 GMT
s Sortable date/time 1970-06-08T12:30:59
u Universal time, local timezone 1970-06-08 12:30:59Z
Y Month / Year Junho 1970

Formatação de Datas (Customizada)

Especificador tipo Saída

 

(June 8, 1970 12:30:59)

dd Day 08
ddd Short Day Name Mon
dddd Full Day Name Monday
hh 2 digit hour 12
HH 2 digit hour (24 hour) 12
mm 2 digit minute 30
MM Month 06
MMM Short Month name Jun
MMMM Month name June
ss seconds 59
tt AM/PM PM
yy 2 digit year 70
yyyy 4 digit year 1970
: seperator, e.g. {0:hh:mm:ss} 12:30:59
/ seperator, e.g. {0:dd/MM/yyyy} 08/06/1970

Há outras formatação. Espero ter ajudado.

Publicado por: juarezsilva | novembro 5, 2009

C# – Tipo de Variável

Para quem está começando a desenvolver em uma linguagem, uma as principais dúvidas é sobre o tipo de variável que a linguagem suporta. No C# os tipos de variáveis podem ser:

C# Type .NET Framework type
bool System.Boolean
byte System.Byte
sbyte System.SByte
char System.Char
decimal System.Decimal
double System.Double
float System.Single
int System.Int32
uint System.UInt32
long System.Int64
ulong System.UInt64
object System.Object
short System.Int16
ushort System.UInt16
string System.String

 

e abaixo tem a faixa de valores que cada tipo suporta

 

C# Type Valores possíveis de se armazenar
bool Verdadeiro ou Falso (Valores booleandos)
byte 0 a 255 (8 bits)
sbyte -128 a 127 (8 bits)
char Um caractere (16 bits)
decimal ±1.0 × 10−28 a ±7.9 × 1028 (128 bits)
double ±5.0 × 10−324 a ±1.7 × 10308 (64 bits)
float ±1.5 × 10−45 a ±3.4 × 1038 (32 bits)
int -2,147,483,648 a 2,147,483,647 (32 bits)
uint 0 a 4,294,967,295 (32 bits)
long –9,223,372,036,854,775,808 a 9,223,372,036,854,775,807 (64 bits)
ulong 0 a 18,446,744,073,709,551,615 (64 bits)
object Qualquer tipo.
short -32,768 a 32,767 (16 bits)
ushort 0 a 65,535 (16 bits)
string Seqüência de caracteres (16 bits por caractere)

C# – Simples, Objetivo e sem mistério.

Publicado por: juarezsilva | novembro 5, 2009

C# – Declaração de Constantes

No C# a declaração de constante é feita através da seguinte sintaxe:

const <tipo do variável> nome da constante = valor da constante;

Exemplo de uma Constante:

a. do tipo string

const string MinhaConstante = “juarez”;

 

b. do tipo int

const int MinhaConstante = 10;

C# Simples, Objetivo e sem mistério.

Publicado por: juarezsilva | outubro 31, 2009

Como Instalar Android SDK no Eclipse

Olá, muito se fala em Android, desenvolver nas nuvens, etc..e tal. Vamos montar um ambiente de desenvolvimento Android utilizando como IDE o Eclipse. Chega de conversa e vamos começar.

Caso você não tenha o SDK do android e nem o Eclipse, utilize os links abaixo para obtê-los, eles são completos e gratuitos.

Download do Eclipse: http://www.eclipse.org/downloads/

Download do Android SDK: http://developer.android.com/sdk/index.html

Faça os dois download e extrai-los em qualquer pasta que preferir, pois vamos fazer o eclipse “conversar” com o Android.

Agora que você já fez os downloads e extraio o conteúdo na pasta que preferiu, vamos montar nosso ambiente de desenvolvimento. Estou o usando o Eclipse Galileo mas vale para todos.

Inicie o Eclipse e vá ao Menu Help, opção Install New Software (é a ultimo menu)

eclipse-galileo-android_01
Clique em ADD
eclipse-galileo-android_02
informe nos dois campos abaixo https://dl-ssl.google.com/android/eclipse/ e clique no botão OK.
eclipse-galileo-android_03
Marque o checkbox Developer Tools e clique no botão Next
eclipse-galileo-android_04
Clique no botão Next novamente
eclipse-galileo-android_05
Aceite os termos e clique no botão Finish
eclipse-galileo-android_06
O Eclipse vai pedir para ser reiniciado, reinicie.
Depois que reiniciar o eclipse, vamos setar o Android nas preferências. Vá no menu Windows opção Preference
eclipse-galileo-android_07
Clique no botão Browse e localize a pasta onde está o Android SDK
eclipse-galileo-android_08
Clique no botão Apply, e aguarde a lista do SDK ser mostrada e clique no botão OK.
eclipse-galileo-android_09
Ufa!!! Agora o IDE de desenvolvimento Eclipse+Android está finalizado.
Publicado por: juarezsilva | outubro 16, 2009

Diferença entre datas em C#

Diferença entre datas em C#

Vamos precisar de duas variáveis do tipo DateTime e uma do tipo TimeSpan por exemplo: DataInicial e DataFinal (DateTime) e Diferenca (TimeSpan);

Vamos ao código:

static void Main(string[] args)
{
    // Declarando as variáveis
    DateTime DataInicial = new DateTime(2009, 10, 16);
    DateTime DataFinal = new DateTime(2009,  10, 30);
    TimeSpan Diferenca; //Variavel para Receber a diferença entre as datas.

   // Vamos subtrair usando o método Subtract da Classe DateTime

Diferenca = DataFinal.Subtract(DataInicial); //Agora temos o resultado da difença

// Podemos escrever a diferença tanto em Int quanto em Double, conforme propriedades disponível na TimeSpan

// Dias em Int
Console.WriteLine(Diferenca.Days);

// Horas em Inteiro
Console.WriteLine(Diferenca.Hours);

// Milesegundos em Inteiro
Console.WriteLine(Diferenca.Milliseconds);

// Minutos em Inteiro
Console.WriteLine(Diferenca.Minutes);

// Segundos em Inteiro
Console.WriteLine(Diferenca.Seconds);

//Dias em Double
Console.WriteLine(Diferenca.TotalDays);

//Horas em Double
Console.WriteLine(Diferenca.TotalHours);

//Milesegundos em Double
Console.WriteLine(Diferenca.TotalMilliseconds);

//Minutos em Double
Console.WriteLine(Diferenca.TotalMinutes);

//Segundos em Double
Console.WriteLine(Diferenca.TotalSeconds);

Console.ReadLine();
}

Simples, Direto sem mistério.

Publicado por: juarezsilva | outubro 13, 2009

C# Sem Mistério – Generic List – Listas Genéricas

Hoje vamos aprender a criar e adicionar elementos em lista em c#, para isto utilizaremos a biblioteca Generic:

using System.Collections.Generic;

Como o próprio nome menciona, trata-se de lista genéricas ou seja, podemos utilizar qualquer tipo de dados em nossa lista.

Criando uma Lista Simples

Vamos criar uma lista de Inteiros (int);

List<int> MinhaLista = new List<int>();

Pronto, declaramos nossa variável lista chamada MinhaLista do tipo int. Agora podemos armazenar qualquer dado do tipo inteiro;

Para adicionar um elemento na lista basta usar o método ADD(Objeto);

MinhaLista.Add(10); — Primeiro elemento da lista

MinhaLista.Add(27); – Segundo elementro da lista

Para adicionar um elementro em um determinada posição, podemos usar o método Insert(posição, elemento a ser adicionado);

MinhaLista.Insert(0, 452) – Posição 0, elemento 452;

Pronto. Simples, Objetivo e Sem mistério.

Postagens Antigas »

Categorias