September 2009 - Posts
Muitas pessoas já me perguntaram o que faço pra ter tantas idéias de projetos, livros, DVDs, vídeos, etc.Respondo que as melhores ocorrem em momentos de relaxamento ou adrenalina. Como cada um tem uma válvula de escape, a minha sempre foram os esportes e acabei publicando um vício que tenho: http://www.renatohaddad.com/kitesurf/relaxkite.html
Escrever um artigo é um tanto simples, mas um livro requer muito planejamento do escopo, da estrutura, do texto, dos exemplos, enfim, é um grande projeto. O fato é que se a tecnologia é nova, como o LINQ, por exemplo, vc tem que estudar e pesquisar muito, para depois sim escrever.
Já para os DVDs que criei sempre foram em função dos treinamentos, desenvolvimentos e consultorias que ministro. O negócio é captar certas idéias e amadurece-las para tornar um produto.
Enfim, curtam o vídeo do kitesurf.
Acabou de sair do forno, ou seja, lancei mais um DVD de treinamento, e este é sobre Linq To SQL e Entity Framework Avançado. Veja os detalhes em http://www.linhadecodigo.com.br/CDDVD.aspx?id=3869 e no www.renatohaddad.com . São 4 horas de aprendizado desta fantástica tecnologia o qual estou mergulhado em aprender cada vez mais.
Espero que gostem e sugestões, elogios e críticas são sempre bem-vindas. Bons estudos.
Tenho recebido muitos emails me questionando sobre como ler dados selecionados de contoles ListBox (MultiSelect) e CheckBoxList no ASP.NET. Então, aqui está um código para ajudá-lo. Usei o Generics de int chamado filtro, o qual a cada iteração no looping verifico se o item está selecionado. Caso esteja, adiciono-o ao filtro. Ao final, teremos todos os itens selecionados na coleção filtro. Note ainda que usei o ListItem no foreach, mas infelizmente isto não existe no windows forms, só no asp.net.
List<int> filtro = new List<int>();foreach (ListItem cat in cblCategorias.Items)
{
if (cat.Selected)
{
filtro.Add(Convert.ToInt16(cat.Value));
}
}
boa sorte.
Num desenvolvimento em camadas onde a camada de acesso a dados utiliza parâmetros, veja um código de como delarar quantos parâmetros forem necessários. Note que usei um Hahtable e, para ler os parâmetros usei o foreach com um DictionaryEntry. Isto permite receber uma coleção de parâmetros e adicioná-los ao Command.
Public Class CamadaDados
Dim conexao As String = "data source=MARTE; Initial Catalog=Northwind; Integrated Security=True"Function GetData(ByVal sql As String, ByVal parametros As Hashtable) As DataTable
TryDim myTable As DataTable
Using conn As New SqlConnection(conexao)Using cmd As New SqlCommand(sql, conn)
conn.Open()
' adicionar os parametros ao Command - chave / valorFor Each Item As DictionaryEntry In parametros
cmd.Parameters.AddWithValue(Item.Key.ToString(), Item.Value)
NextDim reader As SqlDataReader = cmd.ExecuteReader()myTable = New DataTable
myTable.Load(reader)
reader.Close()
conn.Close()
End Using
End UsingReturn myTable
Catch ex As ExceptionThrow ex
End Try
End Function
End
Class
Agora veja o código que irá consumir esta função, evitando a injeção de SQL. Note que declarei apenas 1 parâmetro, mas vc pode declarar diversos.
Dim
sql As String = "Select * from Products Where CategoryID=@cat"parametros.Add("@cat", 1)
DataGridView1.DataSource = objDados.GetData(sql, parametros)
Boa sorte nos códigos.
A Microsoft acabou de publicar 3 vídeos meus sobre os seguintes temas:
- GridView com LINQ -
http://msdn.microsoft.com/pt-br/asp.net/ee461394.aspx - Dynamic Data parte 1 -
http://msdn.microsoft.com/pt-br/asp.net/ee461391.aspx - Dynamic Data parte 2 -
http://msdn.microsoft.com/pt-br/asp.net/ee461393.aspx O link da página de ASP.NET no msdn é:
http://msdn.microsoft.com/pt-br/asp.net/default.aspx Quem sabe você já aproveita o final de semana pra aprender algo novo. Boa sorte e comentários são sempre bem-vindos, por favor fique à vontade para sugerir algo, criticar e elogiar. Usem o meu email
rehaddad@msn.com
More Posts