我想知道是否有可能创建一个通用的"派生列"和一个通用" RecordSet目的地"
我试图从日志表中收集一些信息并将数据发送给相应的收件人。 根据错误的类型,我需要从表中收集一些字段。 一些字段是日期,如果我收集它们,我想工作它们(派生列) 然后,我将它们存储在" RecordSet Destination"从中创建一个表(htm文件)并通过电子邮件发送。
答案 0 :(得分:1)
似乎没有办法避免使用脚本。这篇文章的流量不是很多,我也无法在网上找到答案。
我有一个适应我新需求的脚本,我只需要改变填充数据表的方式。
public void Main()
{
OleDbDataAdapter oleDA = new OleDbDataAdapter();
DataTable dt = new DataTable();
StringBuilder sb = new StringBuilder();
string tab = "\t";
oleDA.Fill(dt, Dts.Variables["DataToSendToIT"].Value);
sb.AppendLine("<html>");
sb.AppendLine(tab + "<body>");
sb.AppendLine(tab + tab + "<table>");
// headers.
sb.Append(tab + tab + tab + "<tr>");
foreach (DataColumn dc in dt.Columns)
{
sb.AppendFormat("<td bgcolor=#CEC8C5>{0}</td>", dc.ColumnName);
}
sb.AppendLine("</tr>");
int i = 0;
foreach (DataRow dr in dt.Rows)
{
sb.Append(tab + tab + tab + "<tr>");
i = i + 1;
foreach (DataColumn dc in dt.Columns)
{
string cellValue = dr[dc] != null ? dr[dc].ToString() : "";
if (i % 2 == 0)
{
sb.AppendFormat("<td bgcolor=#CCEEFF>{0}</td>", cellValue);
}
else
{
sb.AppendFormat("<td>{0}</td>", cellValue);
}
}
sb.AppendLine("</tr>");
}
sb.AppendLine(tab + tab + "</table>");
sb.AppendLine(tab + "</body>");
sb.AppendLine("</html>");
string currentLogFile = Dts.Variables["ScaleFolderPath"].Value.ToString() + Dts.Variables["LogsFolder"].Value.ToString() + "Log " + DateTime.Now.ToString("yyyy-MM-dd HH-mm-ss") + ".htm";
File.WriteAllText(currentLogFile, sb.ToString());
Dts.Variables["CurrentLogFile"].Value = currentLogFile;
Dts.TaskResult = (int)ScriptResults.Success;
}