Renato Haddad

MVP, Developer .NET and MS-Office, MCPD, MCTS

August 2009 - Posts

Fontes da palestra de Dicas e Truques do LINQ, EF e Lambda Expressions

Pessoal, os fontes que utilizei na minha palestra no TechEd 2009 Brasil não vou publicar disponibilizar on-line pq no meu livro LINQ com C# e nos DVDs de LINQ To SQL e Crie uma aplicação ASP.NET com LINQ  vcs encontram muitos exemplos que usei. Bom, no meu site vc encontra os links para adquirir os produtos. Vale dizer que aqui no blog em muitas dicas de linq, basta selecionar a tag de LINQ para ver toda a relação.

Em breve vou lançar um DVD avançado de LINQ To SQL e Entity Framework. Para receber o aviso, se cadastre no www.renatohaddad.com

Amanhã irei palestrar sobre as novidades do Entity Framework 4 as 10h30.

[]s Renatão

Posted: Aug 26 2009, 03:09 PM by renatohaddad | with 2 comment(s)
Filed under:
Artigos do ASP.NET Dynamic Data no TechEd 2009

Pessoal, algumas pessoas me questionaram os links dos meus artigos sobre o ASP.NET Dynamic Data que exibi no TechEd 2009 hj 26/Ago. Aqui estão os links:

http://msdn.microsoft.com/pt-br/library/dd560511.aspx

http://msdn.microsoft.com/pt-br/library/dd871162.aspx

Bos sorte e estude bastante pq isto é show mesmo. []s Renatão

Posted: Aug 26 2009, 03:06 PM by renatohaddad | with 1 comment(s)
Filed under:
TechEd 2009 tá chegando - de 25 a 27/Agosto/2009

Pessoal, o TechEd Brasil está chegando, será em SP de 25 a 27/agosto/2009 e para quem for, irei ministrar as seguintes palestras:

DAT - DAT202 – 200
Novidades do Entity Framework 4.0
DAT - DAT401 – 400
Dicas e truques do LINQ, Entity Framework, Linq to SQL e Expressões Lambda

WEB - WEB303 – 300
Explorando o ASP.NET Dynamic Data

Já tenho todas as demos prontas no estilo Renato Haddad, entenda-se, código, código e mais código. Especialmente a palestra de Dicas e truqes de LINQ e Lambda preparei város exemplos reais do dia a dia de um desenvolvedor. Depois desta palestra, dificilmente vc não irá usar estes fantásticos recursos do Lambda e LINQ.

Vou sortear DVDs e um livro nas palestras. Nos vemos lá. []s Renatão

Posted: Aug 19 2009, 04:07 PM by renatohaddad | with 3 comment(s)
Filed under:
Convertendo e Validando dados Text para int no C#

Em certos casos de uma interface de usuário onde é preciso verificar se o campo é numérico ou não, use o TryParse. veja o código a seguir onde a variável qtde (do tipo int) está referenciada no out do TryParse. ele retorna true/false e se converter, beleza; caso contrário vc trata.

int qtde; 
if (int.TryParse(txtQtde.Text.Trim(), out qtde) == false)
{
     MessageBox.Show("mensagem")
     return;

}

O VB.NET também aceita isto, mas o VB.NET tem o IF (IsNumeric(txtQtde.Text)... Bendito VB.NET :)

Posted: Aug 11 2009, 11:35 PM by renatohaddad | with 2 comment(s)
Filed under:
Pesquisas Where com o LINQ com vários elementos

Existem situações nas aplicações onde é preciso usar vários critérios numa pesquisa, por exemplo, como saber quais clientes cadastrados das cidades a, b, c, etc? com o linq o uso do Where facilita muito. Baseado no banco de dados Northwind, veja um código onde carrego a listbox cidades somente com os nomes das cidades contidas na classe (tabela) Customers. O Distinct já filtra somente cidades únicas.

 lstCidades.DataSource = From c In db.Customers Select c.City Distinct

 Agora, veja o código para uma pesquisa comum com apenas uma cidade selecionada:

gridDados.DataSource = From c In db.Customers Order By c.City Where c.City.Equals(lstCidades.Text)

Muito bem. Agora é que vem o truque. se setar a propriedade SelectionMode para MultiSimple do listbox,irá permitir o usuário selecionar várias opções do listbox. E, como fica o código da pesquisa? Com o LINQ é preciso pensar um pouco diferente, pois primeiro é preciso definir uma lista com todas as cidades selecionadas - veja que usei o Generics List(Of String) com um looping For Each para varrer somente os ítens selecionados do lstCidades. A cada iteraçáo o respectivo item (neste caso o nome da cidade) é adicionada à variável cidade (que é a lista com Generics). Em seguida, observe como que defini o critério de forma contrária, pois o linq é assim, ou seja, normalmente vc pensa onde (where) a propriedade cidade (c.City) contiver (Contains) a lista de cidades. Mas, o correto é onde Where a lista cidades contiver a propriedade cidade (veja a última linha de código). 

Dim cidades As New List(Of String)

For Each Item In lstCidades.SelectedItems

cidades.Add(Item.ToString)

Next

gridDados.DataSource = From c In db.Customers Order By c.City Where cidades.Contains(c.City)

É isto, aqui está mais uma sensacional dica do LINQ. Caso queira aprender o linq com C#, leia o meu livro http://www.editoraerica.com.br/buscafinal.asp?cod=2366

Boa sorte e viva o LINQ !!!

Posted: Aug 07 2009, 07:05 PM by renatohaddad | with 1 comment(s)
Filed under:
Como formatar dados numéricos no LINQ?
Consultas usando o fantástico LINQ seja no dbml ou no entity framework tem sido usado cada vez mais, afinal, quem conhecer o linq nunca mais irá requer saber de codificar de outra forma. Aqui temos um exemplo em VB para formatar o UnitPrice com o formato moeda e duas casas decimais exibindo (R$ 19.50), usando o FormatCurrency(objeto, 2). Já o FormatNumber(objeto, 0) formata o UnitsInStock com zero casas decimais.

Dim produtos = From p In dbml.Products _

Select p.ProductName, _

preco = FormatCurrency(p.UnitPrice, 2), _

estoque = FormatNumber(p.UnitsInStock, 0)

O melhor de tudo é que se você usar por exemplo SeuGridView.DataSource = produtos, todos os dados serão exibidos no grid. Use e abuse do LINQ. Sabe em quais projetos eu tenho usado o LINQ???? em todos os projetos :)

Posted: Aug 06 2009, 11:36 AM by renatohaddad | with 1 comment(s)
Filed under:
More Posts