【发布时间】:2017-09-22 14:02:11
【问题描述】:
Datagrid 有点问题。
数据网格取自 SQL ->
要点是:
- 第一列有数字,
- 最后一列(第 8 列)包含电子邮件。
我想通过 Outlook(正文中的表格)发送 HTML 正文,其中包含行中的数据列表,其中第一列(数字)相同,用于存储在 8 日的电子邮件。在循环中向每个号码发送分组信息。
现在我在每封电子邮件中使用单独的行,但我需要从第一列(行列表)配置每个值的组。在我的示例下方:
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 = "xxxx@xxxxx";
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 放入了电子邮件中。
你能帮我怎么做吗?
【问题讨论】:
-
很遗憾,由于提供的代码支离破碎且不完整,因此尚不完全清楚您要实现的目标、当前的体验或尝试过的目标。
-
简而言之 - 我得到了数据网格。我想将成行的信息发送到定义的电子邮件。电子邮件的内容应该有来自数据网格的行,但通过第一列“分组”。因此,对于数字 1000130,我们在一封电子邮件中发送存在 1000130 的所有行。电子邮件存储在第 8 列。