Envie de Email para todos do Banco de Dados pelo Entity

.NET

22/03/2012

Ola pessoal, gostaria de uma ajuda, estou tentando enviar email para um pessoal do banco de dados, que tem email cadastrado, pelo ADO.Net consigo, porem eswtou passando para Entity, meu botão esta assim

MilitaresSP db = new MilitaresSP();
int wGrupo = Convert.ToInt16(dpGrupos.SelectedValue);
var pesquisa = from m in db.MEMBRO
where (m.EMAIL != ) &&
(m.IDGRUPO == wGrupo)
orderby m.NOME
select new
{
m.NOME,
m.EMAIL

};

//Preciso substituir essa parte de baixo, tentei com forech mas não consegui


using (MySqlDataReader rdr = pesquisa)
{
while (rdr.Read())
{
mailMsg.From = mailAddress;
mailMsg.To.Clear();
mailMsg.To.Add(rdr[Email].ToString());
smtp.Send(mailMsg);
}
}

Agradeço qualquer ajuda.
Paulo Freire

Paulo Freire

Curtidas 0

Respostas

Joel Rodrigues

Joel Rodrigues

22/03/2012

Rapaz, a ideia é que seja assim

foreach(objeto o in colecao)
{
//faça alguma coisa
}

No seu caso, deve ser algo semelhante a

foreach(Membro m in pesquisa)
{
//faça algo, por exemplo
//string teste = m.Propriedade_1
}

Teste aí.
GOSTEI 0
Paulo Freire

Paulo Freire

22/03/2012

Não consegui Joel, não reconhece o foreach,

MilitaresSP db = new MilitaresSP();
int wGrupo = Convert.ToInt16(dpGrupos.SelectedValue);
var pesquisa = from m in db.MEMBRO
where (m.EMAIL != ) && (m.IDGRUPO == wGrupo)
orderby m.NOME
select new
{
m.NOME,
m.EMAIL
};

foreach(Membro m in pesquisa) <--- erro aqui
{
//faça algo, por exemplo
//string teste = m.Propriedade_1
}
GOSTEI 0
Erackson Brito

Erackson Brito

22/03/2012

Troque Membro por MilitaresSP
GOSTEI 0
Joel Rodrigues

Joel Rodrigues

22/03/2012

Falha minha, o foreach que postei funcionaria se trouxesse objetos Membro no seu select. No caso, você seleciona objetos que contém apenas duas propriedades.
Então, altere o foreach para:
foreach(var m in pesquisa)
{
//faça alguma coisa
MessageBox.Show(m.NOME);
MessageBox.Show(m.CODIGO);
}
GOSTEI 0
Marcio Silveira

Marcio Silveira

22/03/2012

Você pode usar uma expressão lambda.

pesquisa.Foreach(m=> EnviarEmail(m.NOME, n.EMAIL));
GOSTEI 0
Paulo Freire

Paulo Freire

22/03/2012

Obrigado Joel, deu certinho, obrigado também ao Marcio e ao Erackson.
GOSTEI 0
POSTAR