Como Verificar o tipo do objeto em C#

On 27 de abril de 2012, in .NET, by Everton Gonçalves

Este é um POST um tanto simples, mas não tão trivial para os programadores.

Melhor dizendo e se você recebe um objeto o qual você não sabe o tipo? Ou se você estiver consumindo um serviço (WebService, WCF, etc…), mas e tiver em sua especificação que o tipo do objeto pode ser mudado? Pois bem, segue uma boa referência.

if(objeto.GetType() == typeof(String))

{

//Verifique se a variável é do tipo string e faça….

}

 

Se você tiver uma abstração você pode também utilizar esse mesmo conceito para verificar se DBNull exemplo…

if(objeto.GetType() == typeof(System.DBNull))

{

//Verifique se a variável é do tipo string e faça….

}

 

Para quem quer tratar de abstração de banco recomendo também uma leitura sobre PropertyInfo

 

Tagged with:  

Classe para exportar GridView para Excel

On 14 de abril de 2012, in .NET, by Everton Gonçalves

Essa semana tive que exportar os dados de uma GridView para uma planilha Excel, bom… sabia que não era algo muito complicado, mas também nunca tinha feito, sendo assim realizei uma busca no grande mestre Google e encontrei uma classe que me atendeu muito bem. Fácil e descomplicado.

using

using System;

using System.Data;

using System.Configuration;

using System.IO;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Web.UI.HtmlControls;

namespace SGM.CTA.Web.UI

{

publicclassGridViewExportUtil

{

///<summary>

/// Realiza a exportao de grid para Excell

///</summary>

///<param name=”fileName”>Nome do Arquivo</param>

///<param name=”gv”>GridView preenchida com os dados necessrios</param>

publicstaticvoid Export(string fileName, GridView gv)

{

HttpContext.Current.Response.Clear();

HttpContext.Current.Response.AddHeader(

“content-disposition”, string.Format(“attachment; filename={0}”, fileName));

HttpContext.Current.Response.ContentType =

“application/ms-excel”;

using (StringWriter sw = newStringWriter())

{

using (HtmlTextWriter htw = new HtmlTextWriter(sw))

{

//  Create a form to contain the grid

Table table =

new Table();

//  add the header row to the table

if (gv.HeaderRow != null)

{

//adiciona a cor

gv.HeaderRow.BackColor = System.Drawing.Color.AliceBlue;

//Prepara informao header

GridViewExportUtil.PrepareControlForExport(gv.HeaderRow);

table.Rows.Add(gv.HeaderRow);

}

//  add each of the data rows to the table

foreach (GridViewRow row in gv.Rows)

{

GridViewExportUtil.PrepareControlForExport(row);

table.Rows.Add(row);

}

//  add the footer row to the table

if (gv.FooterRow != null)

{

GridViewExportUtil.PrepareControlForExport(gv.FooterRow);

table.Rows.Add(gv.FooterRow);

}

//  render the table into the htmlwriter

table.RenderControl(htw);

//  render the htmlwriter into the response

HttpContext.Current.Response.Write(sw.ToString());

HttpContext.Current.Response.End();

}

}

}

///<summary>

/// Replace any of the contained controls with literals

///</summary>

///<param name=”control”></param>

privatestaticvoid PrepareControlForExport(Control control)

{

for (int i = 0; i < control.Controls.Count; i++)

{

Control current = control.Controls[i];

if (current is LinkButton)

{

control.Controls.Remove(current);

control.Controls.AddAt(i,

new LiteralControl((current as LinkButton).Text));

}

elseif (current is ImageButton)

{

control.Controls.Remove(current);

control.Controls.AddAt(i,

new LiteralControl((current as ImageButton).AlternateText));

}

elseif (current is HyperLink)

{

control.Controls.Remove(current);

control.Controls.AddAt(i,

new LiteralControl((current as HyperLink).Text));

}

elseif (current is DropDownList)

{

control.Controls.Remove(current);

control.Controls.AddAt(i,

new LiteralControl((current as DropDownList).SelectedItem.Text));

}

elseif (current is CheckBox)

{

control.Controls.Remove(current);

control.Controls.AddAt(i,

new LiteralControl((current as CheckBox).Checked ? “True” : “False”));

}

if (current.HasControls())

{

GridViewExportUtil.PrepareControlForExport(current);

}

}

}

}

}

 

Para utilizar no seu evento do botão você pode adicionar

GridViewExportUtil.Export(“Usuarios.xls”, this.nome_da_gridview);

 

Dúvidas, entrem em contato

PS: Dificil postar um código aqui no WordPress, ficou um tanto confuso, mas nada dificil de entender!

 

Tagged with:  

Como ativar o “Salvar e Sair” abas no Firefox

On 13 de abril de 2012, in Sem categoria, by Everton Gonçalves

À partir do Firefox 4 o navegador da Mozilla deixou de exibir uma função interessante que era usada por alguns usuários: quando tentávamos fechar várias abas de uma vez o navegador exibia a possibilidade de “Salvar e Sair”.

Felizmente o salvamento de abas no Firefox não foi removido, apenas desativado por padrão. Para “devolver” tal função ao navegador digite na barra de endereços about:config e dê ENTER.

Clique em “Serei cuidadoso, prometo!” e em localizar digite browser.showQuitWarning

Clique com o botão direito do mouse sobre o arquivo encontrado, selecione “Inverter valor” e pronto.

Logo após fechar a página de configuração a modificação já entra em vigor.

Tagged with:  

WebService de CEP dos Correios PHP e JQuery

On 7 de abril de 2012, in PHP, by Everton Gonçalves

Necessário download do JQuery no link http://code.google.com/p/jqueryjs/downloads/detail?name=jquery-1.2.6.js&can=2&q=

 

<html>
<head>
<title>WebService CEP</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!-- Insere o jquery -->
<script type="text/javascript" src="jquery-1.2.6.js"></script>

<script type="text/javascript" >

    $(document).ready(function(){
                //Preenche os campos na a&#231;&#227;o "Blur" (mudar de campo)
                $("#cep").blur(function(){
                        $("#rua").val("...")
                $("#bairro").val("...")
            $("#cidade").val("...")
                $("#uf").val("...")

            // seta a variavel requisitada no campo cep
        consulta = $("#cep").val()

                //Realiza a consulta
                /*Realiza a consulta atrav&#233;s do toolsweb passando o cep como parametro
                  e informando que vamos consultar no tipo javascript
                */
                $.getScript("http://www.toolsweb.com.br/webservice/clienteWebService.php?cep="+consulta+"&formato=javascript", function(){

                        //unescape - Decodifica uma string codificada com o m&#233;todo escape.
                        rua=unescape(resultadoCEP.logradouro)
                        bairro=unescape(resultadoCEP.bairro)
                        cidade=unescape(resultadoCEP.cidade)
                        uf=unescape(resultadoCEP.uf)

                        // preenche os campos
                        $("#rua").val(rua)
                        $("#bairro").val(bairro)
                        $("#cidade").val(cidade)
                        $("#uf").val(uf)

                        });
                });
        });

</script>

</head>

<body>

  <form id="form1" name="form1" method="get" action="">
    <table width="100%" border="0">
      <tr>
        <td>CEP:</td>
        <td><input name="cep" type="text" id="cep" value="" size="15" maxlength="8" /></td>
      </tr>
      <tr>
        <td>RUA:</td>
        <td><input name="rua" type="text" id="rua" size="60" /></td>
      </tr>
      <tr>
        <td>BAIRRO:</td>
        <td><input name="bairro" type="text" id="bairro" size="60" /></td>
      </tr>
      <tr>
        <td>CIDADE:</td>
        <td><input name="cidade" type="text" id="cidade" size="60" /></td>
      </tr>
      <tr>
        <td>ESTADO:</td>
        <td><input name="uf" type="text" id="uf" size="2" /></td>
      </tr>
    </table>
    </form>
</body>
</html>
Tagged with:  

Replace no MySQL

On 28 de março de 2012, in MySQL, by Everton Gonçalves

Olá Pessoal,

Essa semana passei por uma situação um tanto interessante.

Tive que criar uma consulta em um banco de dados MySQL para ser disponibilizada a um cliente. O problema é que nessa consulta dos dados vinham com caracteres especiais do tipo á ficaria Â$, ou seja, encontrei um problema.

Assim como em nossas linguagens de programação nosso banco de dados MySQL também tem a função de replace e pode ser utilizada da seguinte maneira:

REPLACE(“coluna-da-tabela”, “valor-a-ser-alterado”, “valor-novo”)

Ex: REPLACE(“USUARIO”, “AntÓ&nio”, “Antônio”);

Fácil não? Vale a notação dessa funcionalidade, pois certamente precisaremos dela um dia, mesmo que seja para dar um UPDATE em minha tabela toda para corrigir um caracter inserido de forma indevida.

Até a próxima.

 

Tagged with:  

Na tentativa de excluir um usuário de um SCHEMA do SQL Server podemos nos deparar com a seguinte mensagem “Drop User: The database principal owns a schema in the database, and cannot be dropped”.

Para resolver este problema devemos utilizar o ALTER AUTHORIZATION, movendo o usuário do banco para um outro usuário.

ALTER AUTHORIZATION ON SCHEMA::db_owner TO db_owner

Podemos alterar para qualquer um outro usuário utilizando o seguinte comando

ALTER AUTHORIZATION ON SCHEMA::<theSchema> TO userName

Essa é uma forma rápida e eficaz de resolver um problema que as vezes quebramos a cabeça durante horas.

Tagged with:  

Instalando o Samba

On 12 de fevereiro de 2012, in Sem categoria, by Everton Gonçalves

A instalação do SAMBA no Debian e Ubuntum utilizaremos o seguinte comando:

 # apt-get install samba smbclient swat samba-doc

Para instalarmos o SAMBA no CentOS e Fedora utilizaremos

# yum install samba samba-client samba-doc samba-swat

Com os pacotes instalados, use os comandos:

# /etc/init.d/samba start
# /etc/init.d/samba stop

No Fedora, CentOS e no Mandriva, os comandos para iniciar e parar o serviço são:

# service smb start
# service smb stop
Essas instalações são automáticas, basta seguir o solicitado pela instalação.
Até o próximo post…
Tagged with:  

Ajustar Data e Hora no Linux

On 11 de fevereiro de 2012, in Linux, by Everton Gonçalves

Aqui vai uma dica de como ajustar a data e a hora no Linux independente da Distro:
date mmddhhmmccaa
Onde:

  • mm = Mês
  • dd = Dia
  • hh = Hora
  • mm = Minutos
  • cc = Primeiras casas do Ano (2001 = 20)
  • aa = Últimas duas casa do Ano (2001 = 01)

Exemplo:
# date 021122562012

Uma breve observação, para registrar esta data na BIOS necessário realizar o comando clock -w

Dessa maneira ao reiniciar a máquina garantiremos que o horário continuará correto.

Tagged with:  

Problemas com o Blog

On 11 de fevereiro de 2012, in Sem categoria, by Everton Gonçalves

Prezados Leitores,

Venho por via deste informar a perda de todo nosso banco de dados.

Na atualização de nosso blog, o banco de dados foi corrompido e por uma falha nossa, não fizemos o backup do banco de dados conforme recomendado pelo WordPress.

Vamos tentar resgatar vários dos posts anteriores para minimizar o impacto.

Agradecemos a todos e contamos com a colaboração dos nossos leitores.

Att,

Everton Gonçalves