我對Datagrid有點問題。從SQL採取C#Datagrid發送行取決於HTML中的單元格值
的Datagrid - >
要點是:
- 用數字1列,
- 最後一列(8)與電子郵件。
我想通過Outlook(正文中的表格)發送HTML主體與行中的數據列表,其中第一列(數字)是相同的,對於存儲在8日的電子郵件。在循環中將分組信息發送給每個號碼。
現在我使用separatelly行每個電子郵件,但我需要配置每組值(從第1列(行列表))。下面我示例:
con.Open();
String query = "xxxxxxxx";
SqlDataAdapter SDA = new SqlDataAdapter(query, con);
DataTable dt = new DataTable();
SDA.Fill(dt);
dataGridView1.DataSource = dt;
con.Close();
for (int i = 0; i < DataGridView.Rows.Count; ++i)
{
1 = Convert.ToString(dataGridView1.Rows[i].Cells[1].Value);
2 = Convert.ToInt32(dataGridView1.Rows[i].Cells[2].Value);
3 = Convert.ToString(dataGridView1.Rows[i].Cells[3].Value);
4 = Convert.ToString(dataGridView1.Rows[i].Cells[5].Value);
5 = Convert.ToDouble(dataGridView1.Rows[i].Cells[6].Value).ToString("N");
6 = Convert.ToDouble(dataGridView1.Rows[i].Cells[7].Value).ToString("N");
7 = Convert.ToDouble(dataGridView1.Rows[i].Cells[8].Value).ToString("N");
Outlook.Application app = new Outlook.Application();
Outlook.MailItem mailItem = app.CreateItem(Outlook.OlItemType.olMailItem);
mailItem.Subject = "xxx" + 1 + "xxx" + 2 + "xxx";
mailItem.To = "[email protected]";
mailItem.HTMLBody = "aaaaaaaaa" + 1 + "bb: " + 2 + "vvvv."
mailItem.Importance = Outlook.OlImportance.olImportanceHigh;
mailItem.Display(false);
((Outlook._MailItem)mailItem).Send();
}
我已經試過用:
string mailBody = "<table width='100%' style='border:Solid 1px Black;'>";
foreach (DataGridViewRow row in dataGridView1.Rows)
{
mailBody += "<tr>";
foreach (DataGridViewCell cell in row.Cells)
{
mailBody += "<td style='color:blue;'>" + cell.Value + "</td>";
}
mailBody += "</tr>";
}
mailBody += "</table>";
mailItem.HTMLBody = mailBody;
但這種風格,我得到了充分的DataGrid到電子郵件中。
你能幫我怎麼做嗎?
不幸的是,它不是完全清楚你想什麼來實現的,你正在經歷,或者你已經嘗試過什麼,因爲所提供的代碼是零碎和不完整的。 –
簡而言之 - 我得到了datagrid。我想將行中的信息發送給定義的電子郵件。電子郵件的內容應該包含來自數據網格的行,但通過第1列「分組」。因此,對於號碼1000130,我們會在一封電子郵件中發送1000130存在的所有行。電子郵件存儲在第8列。 – Tom