elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 05:19  


Tema destacado: Últimos eventos sobre seguridad/inseguridad

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (Moderador: [D4N93R])
| | | |-+  enviar un datagridview por email c#[SOLUCIONADO]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: enviar un datagridview por email c#[SOLUCIONADO]  (Leído 1,357 veces)
evicar

Desconectado Desconectado

Mensajes: 33


Ver Perfil
enviar un datagridview por email c#[SOLUCIONADO]
« en: 7 Enero 2011, 16:57 »

estimados... denuevo con una consulta.

quiero hacer un programita que me envia el de detalle de una orden de venta por email, esto lo obtengo atraves de una consulta sencilla en sql ...
la cosa, es que no se como enviar en el cuerpo del mensaje esta informacion..
mi intencion es enviar una especie de datagridview, solo el formato texto... no se si me logro explicar les adjunto una ss de como quiero que llegue el mail...


 

Uploaded with ImageShack.us



Código
private void button1_Click(object sender, EventArgs e)
       {
           SqlConnection cn = new SqlConnection("conexión");
           SqlDataAdapter cm = new SqlDataAdapter("select invtid,desc,qtyord,precilista,preciomargen from soshipline where shipperid='12345'", cn);
           DataSet ds = new DataSet();
           cm.Fill(ds, "soshipline");
 
 
           MailMessage msg = new MailMessage();
 
 
           msg.To.Add(new MailAddress("econtreras@hofmann.cl"));
 
           msg.From = new MailAddress("servidor@hofmann.cl");
 
           msg.Subject = "Venta Bajo Margen";
 
           msg.Body = " Deseo que vaya la Info  detalle productos de la Nota Venta";
 
 
           SmtpClient clienteSmtp = new SmtpClient("smtp.xxxxxxxxxx.cl");
 
 
           // Este es el código nuevo
 
           clienteSmtp.Credentials =
           new NetworkCredential("servidor@hofmann.cl", "xxxxxxxxxxxx");
 
 
 
           try
           {
 
               clienteSmtp.Send(msg);
 
           }
 
           catch (Exception ex)
           {
 
               MessageBox.Show(ex.Message);
 
 
 
           }
       }

 Resumiendo necesito enviar la el resultado de la consulta que tengo en el DataSet en el cuerpo del mensaje.




Saludos






« Última modificación: 7 Enero 2011, 22:26 por evicar » En línea
[D4N93R]
Moderador
***
Desconectado Desconectado

Mensajes: 1.647


My software never has bugs. Its just features!


Ver Perfil WWW
Re: enviar un datagridview por email c#
« Respuesta #1 en: 7 Enero 2011, 17:39 »

En vez de poner ese texto, construyes un Html con tablas y le pones esto:

msg.IsBodyHtml = true;

Y listo :)


En línea

evicar

Desconectado Desconectado

Mensajes: 33


Ver Perfil
Re: enviar un datagridview por email c#
« Respuesta #2 en: 7 Enero 2011, 17:49 »

En vez de poner ese texto, construyes un Html con tablas y le pones esto:

msg.IsBodyHtml = true;

Y listo :)

y como podria lograr eso...???? con lo de html y tablas me perdi... xD


Saludos
En línea
.mokk.

Desconectado Desconectado

Mensajes: 177



Ver Perfil
Re: enviar un datagridview por email c#
« Respuesta #3 en: 7 Enero 2011, 22:02 »

Bueno buscando en google hay formas de convertir un DataTable a Html, por lo que nos facilitara el trabajo ^^
Al final el codigo podria quedarnos asi :P

Código
private void button1_Click(object sender, EventArgs e)
       {
           SqlConnection cn = new SqlConnection("conexión");
           SqlDataAdapter cm = new SqlDataAdapter("select invtid,desc,qtyord,precilista,preciomargen from soshipline where shipperid='12345'", cn);
           DataTable dt = New DataTable();
           cm.Fill(dt);
           String datos = ConvertToHtmlFile(dt):
 
           MailMessage msg = new MailMessage();
 
 
           msg.To.Add(new MailAddress("econtreras@hofmann.cl"));
 
           msg.From = new MailAddress("servidor@hofmann.cl");
 
           msg.Subject = "Venta Bajo Margen";
 
           msg.Body = datos;
 
           msg.IsBodyHtml = true;
 
           SmtpClient clienteSmtp = new SmtpClient("smtp.xxxxxxxxxx.cl");
 
 
           // Este es el código nuevo
 
           clienteSmtp.Credentials =
           new NetworkCredential("servidor@hofmann.cl", "xxxxxxxxxxxx");
 
 
 
           try
           {
 
               clienteSmtp.Send(msg);
 
           }
 
           catch (Exception ex)
           {
 
               MessageBox.Show(ex.Message);
 
 
 
           }
       }
 
public static string ConvertToHtmlFile(DataTable targetTable)
{
string myHtmlFile = "";
 
 
if (targetTable == null)
{
 throw new System.ArgumentNullException("targetTable");
}
else
{
 //Continue.
}
 
 
//Get a worker object.
StringBuilder myBuilder = new StringBuilder();
 
 
//Open tags and write the top portion.
myBuilder.Append("<html xmlns='http://www.w3.org/1999/xhtml'>");
myBuilder.Append("<head>");
myBuilder.Append("<title>");
myBuilder.Append("Page-");
myBuilder.Append(Guid.NewGuid().ToString());
myBuilder.Append("</title>");
myBuilder.Append("</head>");
myBuilder.Append("<body>");
myBuilder.Append("<table border='1px' cellpadding='5' cellspacing='0' ");
myBuilder.Append("style='border: solid 1px Silver; font-size: x-small;'>");
 
 
//Add the headings row.
 
 
myBuilder.Append("<tr align='left' valign='top'>");
 
 
foreach (DataColumn myColumn in targetTable.Columns)
{
 myBuilder.Append("<td align='left' valign='top'>");
 myBuilder.Append(myColumn.ColumnName);
 myBuilder.Append("</td>");
}
 
 
myBuilder.Append("</tr>");
 
 
//Add the data rows.
foreach (DataRow myRow in targetTable.Rows)
{
 myBuilder.Append("<tr align='left' valign='top'>");
 
 
 foreach (DataColumn myColumn in targetTable.Columns)
 {
  myBuilder.Append("<td align='left' valign='top'>");
  myBuilder.Append(myRow[myColumn.ColumnName].ToString());
  myBuilder.Append("</td>");
 }
 
 
 myBuilder.Append("</tr>");
}
 
 
//Close tags.
myBuilder.Append("</table>");
myBuilder.Append("</body>");
myBuilder.Append("</html>");
 
 
//Get the string for return.
myHtmlFile = myBuilder.ToString();
 
 
return myHtmlFile;
}
« Última modificación: 7 Enero 2011, 22:04 por .mokk. » En línea

evicar

Desconectado Desconectado

Mensajes: 33


Ver Perfil
Re: enviar un datagridview por email c#
« Respuesta #4 en: 7 Enero 2011, 22:26 »

Bueno buscando en google hay formas de convertir un DataTable a Html, por lo que nos facilitara el trabajo ^^
Al final el codigo podria quedarnos asi :P

Código
private void button1_Click(object sender, EventArgs e)
       {
           SqlConnection cn = new SqlConnection("conexión");
           SqlDataAdapter cm = new SqlDataAdapter("select invtid,desc,qtyord,precilista,preciomargen from soshipline where shipperid='12345'", cn);
           DataTable dt = New DataTable();
           cm.Fill(dt);
           String datos = ConvertToHtmlFile(dt):
 
           MailMessage msg = new MailMessage();
 
 
           msg.To.Add(new MailAddress("econtreras@hofmann.cl"));
 
           msg.From = new MailAddress("servidor@hofmann.cl");
 
           msg.Subject = "Venta Bajo Margen";
 
           msg.Body = datos;
 
           msg.IsBodyHtml = true;
 
           SmtpClient clienteSmtp = new SmtpClient("smtp.xxxxxxxxxx.cl");
 
 
           // Este es el código nuevo
 
           clienteSmtp.Credentials =
           new NetworkCredential("servidor@hofmann.cl", "xxxxxxxxxxxx");
 
 
 
           try
           {
 
               clienteSmtp.Send(msg);
 
           }
 
           catch (Exception ex)
           {
 
               MessageBox.Show(ex.Message);
 
 
 
           }
       }
 
public static string ConvertToHtmlFile(DataTable targetTable)
{
string myHtmlFile = "";
 
 
if (targetTable == null)
{
 throw new System.ArgumentNullException("targetTable");
}
else
{
 //Continue.
}
 
 
//Get a worker object.
StringBuilder myBuilder = new StringBuilder();
 
 
//Open tags and write the top portion.
myBuilder.Append("<html xmlns='http://www.w3.org/1999/xhtml'>");
myBuilder.Append("<head>");
myBuilder.Append("<title>");
myBuilder.Append("Page-");
myBuilder.Append(Guid.NewGuid().ToString());
myBuilder.Append("</title>");
myBuilder.Append("</head>");
myBuilder.Append("<body>");
myBuilder.Append("<table border='1px' cellpadding='5' cellspacing='0' ");
myBuilder.Append("style='border: solid 1px Silver; font-size: x-small;'>");
 
 
//Add the headings row.
 
 
myBuilder.Append("<tr align='left' valign='top'>");
 
 
foreach (DataColumn myColumn in targetTable.Columns)
{
 myBuilder.Append("<td align='left' valign='top'>");
 myBuilder.Append(myColumn.ColumnName);
 myBuilder.Append("</td>");
}
 
 
myBuilder.Append("</tr>");
 
 
//Add the data rows.
foreach (DataRow myRow in targetTable.Rows)
{
 myBuilder.Append("<tr align='left' valign='top'>");
 
 
 foreach (DataColumn myColumn in targetTable.Columns)
 {
  myBuilder.Append("<td align='left' valign='top'>");
  myBuilder.Append(myRow[myColumn.ColumnName].ToString());
  myBuilder.Append("</td>");
 }
 
 
 myBuilder.Append("</tr>");
}
 
 
//Close tags.
myBuilder.Append("</table>");
myBuilder.Append("</body>");
myBuilder.Append("</html>");
 
 
//Get the string for return.
myHtmlFile = myBuilder.ToString();
 
 
return myHtmlFile;
}



Estimado funciono perfecto muchas gracias


TEMA SOLUCIONADO
En línea
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda con datagridview (SOLUCIONADO)
.NET
akonerz 3 2,246 Último mensaje 15 Septiembre 2009, 22:25
por akonerz
[SOLUCIONADO] manejar datos con datagridview en C#
.NET
SRVAM 6 8,001 Último mensaje 23 Septiembre 2009, 19:03
por SRVAM
[SOLUCIONADO] VB - Duda con DataGridView
.NET
AlonsoCN 2 3,426 Último mensaje 3 Noviembre 2009, 05:57
por AlonsoCN
Obtener valores de un DataGridView [SOLUCIONADO]
.NET
novalida 4 4,634 Último mensaje 19 Marzo 2010, 16:10
por novalida
[Solucionado] Problema con enviar email « 1 2 »
PHP
Caster 19 1,196 Último mensaje 3 Enero 2012, 00:45
por dsalcedo
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines