Exportar GridView para Excel

Este post se baseia, no mei ultimo trabalho, onde a finalidade era fazer um exporte de um grid para uma planilha excel.Convém salientar que é muito simples implementar.

Vamos lá!

Crie um Novo Web Site.

Coloque um botão e um GridView.

A maneira que em que o grid será populado fica a critério.

No evento Click do botão, coloque o código abaixo.

 

codigo-1

isso ai moçada boa sorte!

Teste JQuery

Because time is valuable, we deliver quick and easy learning.

At W3Schools, you can study everything you need to learn, in an accessible and handy format.

Show Panel

Usando Query String no Sharepoint

1. Criar uma Page do tipo Web page Blank onde será exibida a pagina filtrada por query string.

2. Após a criação da pagina click em Edit Page e adicione uma Web Part, que no caso será a lista de páginas do portal.

Como mencionado acima ao clicar em adicionar uma nova Web Part selecione a lista de paginas do portal, essa lista contera todas paginas criadas por você.

Apos adicionar a Web Part!

3. Abra o sharepoint Designer, em seguida seu site para fazer os passos seguintes. Selecione a pagina que foi criada anteriormente, clique em cima da mesma com o botão direito do mouse e selecione a opção Detach from Page Layout que irá desatachar o layout da pagina.

Você poderá começar a fazer edições na page se aparecer a seguinte caixa de dialogo com a mensagem de successfully como se segue abaixo.

4. Abra a pagina em que você acabou de desatachar o page layout,clique com o botão direito em cima da web part a ser editada, selecione a opção Convert to XSTL Data View.

5. Clique na Smart Tag da web part e defina os parametros. Selecionando a opção Parameters do Common Data View Task.

Defina o paremtro a será usado na query string seguindo os passos abaixo:

1. No botão New Parameter

2. Defina um nome para seu parametro, no drop down selecione a opção Query String e em seguida de um nome para a variável Query String.

Clique em OK!

6. Chegamos na parte final do tutorial, nessa parte iremos definir o filtro, que é uma opção do Common Data View Task. Novamente clique no Smart Tag da web part que esta em edição. O filtro a ser criado irá filtrar os dados da lista page, e o filtro pode ser criado seguindo os passos abaixo:

1. Defina o nome do campo que será usado como filtro.

2. Após a deifnição do campo, defina a forma de compração a ser usado que no exemplo foi usado o Equals.

Essa comparação será feita como parametro criado no passo anterior.

Clique Ok!

Segue abaixo algumas imagens do portal criado como exemplo.

Introdução ao LINQ to SQL

      A utilização de padrões baseados em orientação a objetos, tornou-se um dos requerimentos em qualquer aplicação atual. Já possuímos pleno domínio do  mundo OOP (Object Oriented Programming). Então chegou o momento de vencermos mais um desafio que é a barreira existente entre dados e objetos. Nosso primeiro passo será portar toda essa experiência adquirida  para fechamos o elo faltante que é a integração com base de dados, arquivos XML e objetos. A partir desse momento, estamos dando um grande salto na evolução de todos os conceitos atuais e iniciado de vez na linha do O/R Mapping (Mapeamento Objeto Relacional) e na exploração plena e orientação aos objetos no desenvolvimento de software. O .NET recebeu algumas extensões para permitir amplo suporte ao novo modelo de manipulação de objetos que ganhou o nome de LINQ (Language Integrated Query) conforme figura 01.

Figura 01 - Introdução ao LINQ

       As mais diversas consultas de dados serão encapsuladas pelo mecanismo do LINQ expondo apenas objetos, tornando transparente se você usa um banco de dados, um xml ou outra fonte de dados qualquer.
.NET Framework 3.5

      Para permitir o suporte a linguagem integrada de consulta, foi incorporado ao .NET algumas novas funcionalidades de forma a suportar o LINQ (Linguagem Integrada de Consulta). Dentre as novas funcionalidades, podemos citar: Tipos anônimos, expressões lambdas e extensões de métodos, além da query de consulta.
O/R Mapping

       O modelo de mapeamento objeto relacional para banco de dados SQLServer, consiste no mapeamento das tabelas do banco de dados como classes, campos como propriedades, procedures e funções como métodos de forma que você tenha no designer de classe da aplicação um conjunto de classes que representam visão 1:1 do seu banco de dados. Acompanhe na figura 02 a tabela 'Products' do banco de dados e na figura 03 a representação da mesma já mapeada como a classe 'Product' conforme figura 03. Uma vez feito o mapeamento pelo simples processo de arrastar a tabela do banco para dentro do designer de classes, os desenvolvedores do projeto já podem usar o LINQ para manipular os objetos criados a partir das classes mapeadas.

Figura 02 - Tabela 'Products' do banco de dados

Figura 03 - Classe mapeada 'Product'

       Após estabelecer o mapeamento, os benefícios são imediatos pois, a classe mapeada é igual a qualquer outra do .net. Então você de imediato, já vai ter acesso pelo Intellisense do Visual Studio sem precisar conhecer nomes de campos no banco de dados que agora aparecem para você como propriedades. Outro ganho, é sobre as consultas do LINQ que mostrarei logo a seguir. Como todo acesso será por meio das mesmas, você só vai escrever código .NET que além do Intellisense já comentado será validado contra erros de digitação pelo compilador.
Para melhor entender esse novo cenário, vamos retornar ao acesso tradicional usando ADO.NET para recuperar as informações do nosso banco de dados conforme Listagem 1.

ADO.NET

SqlConnection c = new SqlConnection(…);
c.Open();
SqlCommand cmd = new SqlCommand(
@"SELECT p.ProductID, p.ProductName
FROM Products p
WHERE p.ProductName = @p0
");
cmd.Parameters.AddWithValue("@p0", "XYZ“);
DataReader dr = c.Execute(cmd);
while (dr.Read())
{
string ID = dr.GetString(0);
string ProductName = dr.GetString(1);
}
dr.Close();
Listagem 01 - Consulta usando ADO.NET.
Agora que você já relembrou o acesso tradicional, confira na listagem 02 e na figura 04 o novo modelo de consulta utilizando o LINQ.

LINQ

var db = new NorthwindDataContext();
var consulta = from p in db.Products
                    where (p.ProductName=="ZYZ")
                    select new
                   {p.ProductID,p.ProductName};
this.GridView1.DataSource = consulta;
this.GridView1.DataBind();
Listagem 02 - Consulta usando LINQ.

Figura 04 - Digitando consulta para coleção de produtos.

         Você deve ter tido duas reações. Primeiro viu a diferença na qualidade de linhas de código para fazer a operação e não tenho dúvidas que você já está curioso para aprofundar os estudos no LINQ to SQL. Em segundo, deve estar estranhando a forma de construção desse código e aí que entra o .NET 3.5. Declaramos um objeto anônimo chamado de consulta e depois seu tipo com o resultado da query expression na coleção Products. Ao fazermos essa consulta, o LINQ vai converter essa solicitação em um código T-SQL e vai buscar no banco de dados as linhas referentes aos objetos solicitados. Ao receber a resposta do banco de dados, ele vai retornar uma coleção de objetos que armazenaremos no objeto consulta. O resto foi somente popular essa coleção no gridview. Você pode conferir o exemplo do código T-SQL gerado pelo LINQ na listagem 03. Uma característica importante que vale ressaltar nesse momento, é que o objeto consulta mesmo sem ser inicializado com um tipo especifico, ele é fortemente tipado, sendo que logo após a definição do seu tipo, ele não pode ser modificado.

T-SQL

SELECT [t0].[ProductID], [t0].[ProductName]
FROM [dbo].[Products] AS [t0]
WHERE [t0].[ProductName] = 'ZYZ';
Listagem 03 - Código T-SQL gerado pelo LINQ.
Conforme você observou na figura 04, com o LINQ seu acesso a dados será simplificado e o conhecimento da base de dados será o uso da sua linguagem de programação no dia a dia usando o próprio Intellisense sem precisar conhecer todos os nomes do banco de dados. Um comentário interessante ainda sobre essa questão, é o código 'where' na figura 04 e o código T-SQL gerado no banco de dados conforme listagem 03, onde você observa que um código .net é convertido para código T-SQL pelo LINQ.

Ajax ASP.NET

      Em determinado sites somos surpreendidos por certas funcionalidades que prendem nossa atenção, certas vezes mais até que o próprio conteúdo, como efeitos modais para confirmação, máscaras de dados, calendários dinâmicos, refreshs localizados entre outras coisas.

     Não é novidade que todas essas coisas geralmente são fruto da utilização de ajax, e para quem usa o Visual Studio existe um Framework muito bom, simples de instalar e fácil de usar, estou falando do ASP .NET AJAX. Por enquanto deixarei apenas um breve tutorial de como instalar e os links para download, e em breve alguns exemplos de uso práticos.

  • Para baixar você visita o CodePlex ou diretamente por aqui (eu recomendo o NoSource), depois de baixar é só descompactar o arquivo;

  • A instalação é simples, com seu site já criado crie uma nova aba na ToolBox (clicando com o direito e selecionando Add Tab), com a aba criada clique com o direito nela e escolha Choose Items, na tela que se abrir clique em Browse e procure pela pasta onde você descompactou o arquivo baixado, em SampleWebSite/bin você deve escolher AjaxControlToolkit.dll, agora é só confirmar, aguardar a instalação e usar.:)

       Para maiores informações sobre a instalação visite esta página.
Eu recomendo a todos verificar o funcionamento dos exemplos aqui, é realmente interessante, um abraço e até a próxima.

SQL Tutorial








Fechar [X]





Introdução



O tipo string apesar de se comportar como um value type é na verdade um reference type. Apesar disso, devemos considerar que estamos trabalhando com um value type quando estamos manipulando strings, tendo em vista que este tipo de dado foi programado para funcionar como tal



A classe string possui uma série de métodos estáticos e não estáticos, que são utilizamos para formatação, concatenação, desmembramento, substring, etc. Vamos analisar alguns destes métodos da classe string.






O método Substring



O método substring é um método não estático que permite pegarmos uma porção de uma string. Para utilizarmos o método substring, basta chamar o método a partir de uma variável string ou mesmo de uma string literal, conforme o exemplo.



string nome = "Testando da Silva";



string sobreNome = nome.Substring(12,5);



O método substring aceita como parâmetro a posição inicial que queremos obter e quantos caracteres devem ser extraídos. Caso não seja informado o número de caracteres a ser extraído, a função retornará o restante da string a partir da posição inicial informada.



O método IndexOf



O método IndexOf é utilizado para localizar uma determinada palavra dentro da string. Este método retornará a posição da string desejada. Caso a string não seja encontrada, será retornado o valor -1.



string nome = "Testando da Silva";

int pos = nome.IndexOf("Silva");


//A partir do índice 5


int pos2 = nome.IndexOf("Silva", 5);



Conforme vimos no exemplo, é possível informar a posição inicial para busca como um parâmetro adicional.



Funções ToUpper e ToLower



As funções ToUpper e ToLower permitem colocar uma string em letra minúsculas ou maiúsculas, conforme o exemplo a seguir.



string nome = "Maurício";



nome = nome.ToUpper();

nome = nome.ToLower();





Funções StartsWith e EndsWith



As funções startswith e endswith verificam se a string começo ou termina com uma determinada palavra ou caracter. Estas funções retornam um valor booleano (true ou false).



string arquivo = "comctl32.dll";



if(nome.StartsWith("com"))

Console.WriteLine("Começa com COM!");



if(nome.EndsWith(".dll"))

Console.WriteLine("É uma dll!");



Funções TrimStart, TrimEnd e Trim



As funções de Trim servem para remover espaços em branco das strings. A função TrimStart remove os espaços em branco do início da string, já a função TrimEnd remove os espaços em branco do final da string. A função Trim remove os espaços em branco do inicio e do fim da string.



string nome = " MAURICIO ";



nome = nome.TrimEnd();

nome = nome.TrimStart();



nome = nome.Trim();



Funções PadLeft e PadRight



As funções PadLeft e PadRight servem para preencher uma string a esquerda ou a direita com um caracter especificado. Os exemplos a seguir mostra o uso das funções PadLeft e PadRight.



string nome = "Mauricio";



nome = nome.PadRight(10, ' ');

// "Mauricio "



string codigo = "123";

codigo = codigo.PadLeft(6, '0');


// "000123"



Funções String.Join e String.Split



A função Split serve para quebrar uma string em um array de strings de acordo com um separador. Ao contrário da função split, a função Join concatena um array de string inserindo um separador.



string linha = "Teste, 10, 20, 10/06/2007";



string[] campos = linha.Split(',');



string linhaNova = String.Join(';', campos);



A Função String.Format



A função String.Format é uma das funções mais versáteis da classe string. Esta função permite a criação de uma string baseada em um padrão. Podemos colocar dentro do padrão da string de formatação alguns tokens que poderam ser substituídos por variáveis passadas por parâmetro no comando format.



string teste = String.Format("Vou colocar o {0} aqui.", "parâmetro");



No exemplo acima, o padrão da string (primeiro parâmetro) contém um token {0}. Este token indica que este valor deve ser substituido pelo segundo parâmetro passado para a função (neste caso a palavra “parâmetro”).



sTeste = String.Format("Formatação de string com {0} parâmetro. ",

"Agora são {1}. Valor numérico: {2}", 1, Now(), 15.5);



No exemplo acima, temos o padrão da string com mais de um token, com números de 0 à 2. A função também recebe 3 parâmetros adicionais que correspondem aos valores que serão substituídos na string. Além de informarmos os tokens, podemos informar regras de formatação que serão utilizadas de acordo com o tipo de dado passado por parâmetro, conforme o exemplo,



sTeste = String.Format("Custom Format: {0:d/M/yyy HH:mm:ss}", dtHoje);

sTeste = String.Format("Formatação do número inteiro: {0:D}.", iNumero);


sTeste = String.Format("Formatação do número inteiro: {0:D4}.", iNumero);



A classe StringBuilder



Apesar da versatilidade da classe string, operações com string podem consumir muitos recursos e causar perda de desempenho. Isto ocorre porque a cada operação o framework cria um novo buffer para a string resultante da operação, ao invés de aproveitar o buffer que está sendo utilizado. Isto é mais aparente em operações de concatenação.



Para não criar este tipo de problema, podemos utilizar a classe StringBuilder, do namespace System.Text. Esta classe permite a criação de strings aproveitando o buffer utilizado, o que torna o código mais eficiente.



No exemplo a seguir temos um trecho de código com uma operação feita de forma ineficiente e outra mais eficiente usando o stringBuilder, veja a diferença.



// Codigo ineficiente

string sql;


sql = "SELECT * FROM Products";


sql += " WHERE CategoryId=1 AND";


sql += " AND UnitPrice>10";



// Codigo Eficiente

StringBuilder sb =


new StringBuilder();



sb.Append("SELECT * FROM Products");

sb.Append(" WHERE CategoryId=1 AND");


sb.Append(" AND UnitPrice>10");



sql = sb.ToString();










Tutorial SQL