asp.net c#将数据集中的数据转换为电子邮件正文?

时间:2010-12-07 17:17:58

标签: c# asp.net

从数据集到电子邮件正文的最佳方式是什么?

我有一个.net控制台应用程序,可根据存储过程的结果发送电子邮件通知,并想知道如何最好地从SQL数据转到电子邮件正文?

带有颜色和字体的html主体是最好的,但纯文本也很好。

感谢。

2 个答案:

答案 0 :(得分:1)

怎么样:

  1. 参考System.Web(使用System.Web.UI.WebControls添加;)
  2. 实例化DataGrid或GridView或您喜欢的任何输出
  3. 绑定DataTable
  4. 渲染为字符串 - 使用类似

    的内容
    var buffer = new StringBuilder(); 
    var tw = new HtmlTextWriter(new StringWriter(buffer))) 
    datagrid.RenderControl(tw); 
    var emailbodyHtmlPart = buffer.ToString();
    
  5. 对DataSet中的每个DataTable执行此操作
  6. 将结果添加到电子邮件的html正文
  7. 这当然没有经过测试,但原则上应该有效。

答案 1 :(得分:0)

static string getHTML(DataTable dt) {
        StringBuilder myBuilder = new StringBuilder();

        myBuilder.Append("<table border='1px' cellpadding='5' cellspacing='0' ");
        myBuilder.Append("style='border: solid 1px Silver; font-size: x-small;'>");

        myBuilder.Append("<tr align='left' valign='top'>");
        foreach (DataColumn myColumn in dt.Columns)
        {
            myBuilder.Append("<td align='left' valign='top'>");
            myBuilder.Append(myColumn.ColumnName);
            myBuilder.Append("</td>");
        }
        myBuilder.Append("</tr>");

        foreach (DataRow myRow in dt.Rows)
        {
            myBuilder.Append("<tr align='left' valign='top'>");
            foreach (DataColumn myColumn in dt.Columns)
            {
                myBuilder.Append("<td align='left' valign='top'>");
                myBuilder.Append(myRow[myColumn.ColumnName].ToString());
                myBuilder.Append("</td>");
            }
            myBuilder.Append("</tr>");
        }
        myBuilder.Append("</table>");

        return myBuilder.ToString();
    }