Ajuda com DataTable

11/01/2012

0

Boa tarde!!

É o seguinte, tenho uma consulta SQL q coloquei em uma DataTable, e retorna apenas uma coluna com emails cadastrados.
O q eu preciso fazer é varrer as linhas, pegar o resultado dessa consulta e colocar em uma variável pra ser lido pelo MailMessage e enviar
tudo d uma vez. O problema é q em uma linha da consulta podem ter mais d um email, que eu separo por .Split(), só q assim,
o q era uma string vira duas, dando problema na hora de fazer o For. Logo eu tentei fazer uma List, só q dá todo tipo d erro.
O ideal era q eu fizesse um DataSet e o MailMessage já lesse tudo, separasse tudo, e só dxasse preu enviar.
Só q imaginar é fácil né ^^. Vou passar o primero rabisco q eu fiz.


SqlDataAdapter daEnvio = new SqlDataAdapter(select distinct emails from CONFIGURACOES_PRONTUARIO_NETPORTO  +
                                                         where emails is not null  +
                                                         and emails <>  , conn);
                
                DataTable dtEnvio = new DataTable();
                daEnvio.Fill(dtEnvio);
                conn.Open();
                int i = 0;

for(i = 0; i <= dtEnvio.Rows.Count; i++)
                {                                       
                                        
                    string[] email = dtEnvio.Rows[i].ToString().Split(;);


                    mailMsg.To.Add(new MailAddress(email[i]));
                }




Então se alguém puder me ajudar a organizar as idéias, salvaria minha vida ^^
Brigada!
Juliana Andrade

Juliana Andrade

Responder

Posts

11/01/2012

Joel Rodrigues

Como você pode ter mais de um email na mesma lina, você tem que percorrer também a linha e adicionar um destino para cada string proveniente do Split.
Teste o código abaixo (adaptando a sua necessidade):
foreach(DataRow r in dtEnvio.Rows)
{
	foreach(string email in r[0].ToString().Split(;))
	{
		mailMsg.To.Add(new MailAddress(email));
	}
}

Atenciosamente,
Responder

11/01/2012

Juliana Andrade

Como você pode ter mais de um email na mesma lina, você tem que percorrer também a linha e adicionar um destino para cada string proveniente do Split.
Teste o código abaixo (adaptando a sua necessidade):
foreach(DataRow r in dtEnvio.Rows)
{
	foreach(string email in r[0].ToString().Split(;))
	{
		mailMsg.To.Add(new MailAddress(email));
	}
}

Atenciosamente,


Joel Rodrigues

Noooooossaaaaaa, q simples mew ^^!

Funcionou direitinho!

Brigada meeeeesmo heim, d fato salvou minha vida!!! =D

Abração!
Responder

11/01/2012

Joel Rodrigues

Fico feliz em ter ajudado.
Boa sorte.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar