J'ai un petit problème avec Datagrid.C# Datagrid envoyer des lignes dépend de la valeur de la cellule en HTML
Datagrid pris de SQL ->
Les principaux points sont:
- 1ère colonne avec le numéro,
- dernière colonne (8) par e-mail. Je voudrais envoyer en HTML corps via Outlook (table dans le corps) avec la liste des données des lignes, où la 1ère colonne (nombre) est la même, pour l'email qui est stocké sur 8ème. En boucle pour envoyer des informations groupées à chaque numéro.
Maintenant, j'utilise séparatelly row par email, mais j'ai besoin de config avec le groupe par valeur de la 1ère colonne (liste des lignes). Ci-dessous mon exemple:
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();
}
J'ai essayé déjà avec:
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;
Mais dans ce style, je suis plein DataGrid dans un e-mail.
Pouvez-vous m'aider à faire cela?
Malheureusement, il est pas tout à fait clair ce que vous essayez d'atteindre, ce que vous vivez actuellement, ou ce que vous avez essayé, parce que le code fourni est fragmenté et incomplet. –
En bref - j'ai eu DataGrid. Je voudrais envoyer des informations qui sont dans les rangées aux courriels défindés. Le contenu de l'email devrait contenir des lignes de la base de données, mais "groupped" via la 1ère colonne. Donc, pour le numéro 1000130, nous envoyons toutes les lignes où 1000130 existe, dans un courriel. L'email est stocké sur la 8ème colonne. – Tom