Array
(
)

Ajuda com DataTable

Juliana Andrade
   - 11 jan 2012

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.
#Código


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!

Joel Rodrigues
   - 11 jan 2012

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):
#Código

foreach(DataRow r in dtEnvio.Rows)
{
	foreach(string email in r[0].ToString().Split(;))
	{
		mailMsg.To.Add(new MailAddress(email));
	}
}

Atenciosamente,

Juliana Andrade
   - 11 jan 2012


Citação:
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):
#Código

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!

Joel Rodrigues
   - 11 jan 2012

Fico feliz em ter ajudado.
Boa sorte.