將DataTable 轉為HTML格式的字串,並以表格呈現。
使用 DataAdapter物件撈取資料庫 ( DataBase ) 的資料指派給DataTable,
卻不知道如何呈現表格化的資料。
→將Datatable資料表轉為html表格的字串,搭配先前的發信功能將HTML表格發送到相關收件者的信箱。
public static string getHtml(DataTable dt)
{
try
{
//messageBody = 內容主體
string messageBody = "<font>以下為dt作為引數傳入的Table資料表: </font><br><br>";
if (dt.Rows.Count == 0)
{
return messageBody; //dt為empty的情況
}
//設定html格式
string htmlTableStart = "<table style=\"border-collapse:collapse; text-align:center;\" >";
string htmlTableEnd = "</table>";
string htmlHeaderRowStart = "<tr style =\"background-color:#6FA1D2; color:#ffffff;\">";
string htmlHeaderRowEnd = "</tr>";
string htmlTrStart = "<tr style =\"color:#555555;\">";
string htmlTrEnd = "</tr>";
string htmlTdStart = "<td style=\" border-color:#5c87b2; border-style:solid; border-width:thin; padding: 5px;\">";
string htmlTdEnd = "</td>";
messageBody += htmlTableStart;
messageBody += htmlHeaderRowStart;
//設定dt欄位(Column)名稱
messageBody += htmlTdStart + " Column1 " + htmlTdEnd + htmlTdStart + " Column2 " + htmlTdEnd;
messageBody += htmlTdStart + " Column3 " + htmlTdEnd + htmlTdStart + " Column4 " + htmlTdEnd;
messageBody += htmlTdStart + " Column5 " + htmlTdEnd + htmlTdStart + " Column6 " + htmlTdEnd;
messageBody += htmlHeaderRowEnd;
//將dt每一行的資料依序Traverse、存取。
foreach (DataRow Row in dt.Rows)
{
messageBody += htmlTrStart;
messageBody += htmlTdStart + Row["Column名稱1"] + htmlTdEnd;
messageBody += htmlTdStart + Row["Column名稱2"] + htmlTdEnd;
messageBody += htmlTdStart + Row["Column名稱3"] + htmlTdEnd;
messageBody += htmlTdStart + Row["Column名稱4"] + htmlTdEnd;
messageBody += htmlTdStart + Row["Column名稱5"] + htmlTdEnd;
messageBody += htmlTdStart + Row["Column名稱6"] + htmlTdEnd;
messageBody += htmlTrEnd;
}
messageBody += htmlTableEnd;
return messageBody;
}
catch (Exception ex)
{
return null;
}
}