SQL Server数据表填充System.Net.Mail正文
本文关键字:Net Mail 正文 System 填充 Server 数据表 SQL | 更新日期: 2023-09-27 17:59:41
我正试图使用System.Net.Mail.MailMessage()填充一个带有填充数据表的电子邮件正文。这是可能的还是错误的方法?
SqlDataAdapter da = new SqlDataAdapter(com);
DataTable dt = new DataTable();
da.Fill(dt);
System.Net.Mail.MailMessage mail = new System.Net.Mail.MailMessage();
mail.Body = ? ;
您可以从所有rows
中获取data
并将其存储在string
中,然后像这样将此字符串分配给mail.Body
。
StringBuilder sb=new StringBuilder();
foreach (DataRow dr in dt.Rows)
{
sb.Append(dr["columnName"].ToString() + "<br />");
}
mail.Body = sb.ToString();
当然有可能。。
SqlDataAdapter da = new SqlDataAdapter(com);
DataTable dt = new DataTable();
da.Fill(dt);
System.Net.Mail.MailMessage mail = new System.Net.Mail.MailMessage();
mail.Body = dt.Table[your_table].Rows[your_row][your_coulmn].ToString() ;
在5年前的一个项目中,我使用这种方式生成HtmlTable
,并从类似HtmlTable
的项目中获得一个字符串;
public static HtmlTable GenerateHtmlTableForMail(DataTable dt)
{
HtmlTable retval = new HtmlTable();
HtmlTableRow tr = new HtmlTableRow();
HtmlTableCell td = new HtmlTableCell();
foreach (DataColumn col in dt.Columns)
{
td = new HtmlTableCell();
td.InnerText = col.ColumnName;
tr.Cells.Add(td);
}
retval.Rows.Add(tr);
foreach (DataRow row in dt.Rows)
{
tr = new HtmlTableRow();
foreach (DataColumn col in dt.Columns)
{
td = new HtmlTableCell();
td.InnerText = row[col].ToString();
}
retval.Rows.Add(tr);
}
return retval;
}
和
public static string GetHtmlTableString(HtmlTable table)
{
string retval = "";
StringWriter sw = new StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
table.RenderControl(htw);
return sw.ToString();
}
在您的情况下,您可以将GetHtmlTableString
返回的内容分配给mail.Body
属性。