J'ai un DataGridView qui est supprimé de la boîte à outils (VS2015). Je dois sélectionner des lignes identiques en fonction de la colonne Commande client et envoyer un e-mail: Sélectionnez plusieurs lignes dans datagridview en fonction de la valeur de la cellule et de l'adresse e-mail.
Donc; Si je sélectionne une ligne basée sur l'identifiant unique (Elément de ligne), je souhaite trouver toutes les lignes ayant le même numéro de commande client et envoyer par courrier électronique les informations contenues dans ces lignes. Comme vous pouvez le voir, il peut y avoir une ligne sans commande client correspondante ou il peut y en avoir plusieurs. Ce que je voudrais, c'est une suggestion sur le code pour sélectionner les lignes multiples (similaires) et une suggestion sur la façon d'ajouter toutes ces informations dans le courrier électronique. J'ai quelques extraits de code pour faire une seule sélection.
private void salesOrdersDataGridView_CellContentClick(object sender,
DataGridViewCellEventArgs e)
{
if (e.RowIndex > -1)
{
DataGridViewRow row = salesOrdersDataGridView.Rows[e.RowIndex];
string cpn = "";
cpn = salesOrdersDataGridView.Rows[e.RowIndex].Cells["cpn"].Value.ToString();
lblCpn.Text = cpn;
lblCpn.Visible = true;
string ordnum = "";
ordnum = salesOrdersDataGridView.Rows[e.RowIndex].Cells["SalesOrder"].Value.ToString();
lblOrder.Text = ordnum;
lblOrder.Visible = true;
string pnum = "";
pnum = salesOrdersDataGridView.Rows[e.RowIndex].Cells["partno"].Value.ToString();
lblPN.Text = pnum;
lblPN.Visible = true;
lblPN.ForeColor = Color.FromArgb(0, 192, 0);
string desc = "";
desc = salesOrdersDataGridView.Rows[e.RowIndex].Cells["descript"].Value.ToString();
lblDesc.Text = desc;
lblDesc.Visible = true;
string quant = "";
quant = salesOrdersDataGridView.Rows[e.RowIndex].Cells["qty"].Value.ToString();
lblQty.Text = quant;
lblQty.Visible = true;
string cpo = "";
cpo = salesOrdersDataGridView.Rows[e.RowIndex].Cells["cpo"].Value.ToString();
lblPO.Text = cpo;
lblPO.Visible = true;
string rev = "";
rev = salesOrdersDataGridView.Rows[e.RowIndex].Cells["crev"].Value.ToString();
lblRev.Text = rev;
lblRev.Visible = true;
lblRev.ForeColor = Color.FromArgb(0, 192, 0);
DateTime shp = DateTime.Parse(salesOrdersDataGridView.Rows[e.RowIndex].Cells["shipDate"].Value.ToString());
lblshp.Text = shp.ToString("MM/dd/yyyy");
lblshp.Visible = true;
string eml = "";
eml = salesOrdersDataGridView.Rows[e.RowIndex].Cells["email"].Value.ToString();
lblEmail.Text = eml;
lblEmail.Visible = true;
Comme vous pouvez le voir, je suis en train d'écrire sur les étiquettes (ce qui est que l'utilisateur puisse vérifier les informations que je puis ajouter que au courrier électronique (Outlook):
private void btnAck_Click(object sender, EventArgs e)
{
try
{
//Must add Outlook Reference Object Library
Outlook.Application _app = new Outlook.Application();
Outlook.MailItem mail = (Outlook.MailItem)_app.CreateItem(Outlook.OlItemType.olMailItem);
mail.To = lblEmail.Text;
mail.BCC = ";[email protected]";
mail.Subject = "Order Acknowledgement for your PO " + lblPO.Text;
mail.BodyFormat = Outlook.OlBodyFormat.olFormatHTML;
mail.HTMLBody = "<HTML><BODY>";
mail.HTMLBody += "Thank you for your order!" + "<br />" + "<br />" + "Touchstone Order Number: " + lblOrder.Text +
"<br />" + " Part Number: " + lblPN.Text + "<br />" + "Description:" + lblDesc.Text + "<br />" + "Customer Part Number: " + " " +
lblCpn.Text + "-" + " Revision: " + lblRev.Text + "<br />" + "Expected Ship Date: " + lblshp.Text +
"<br />" + "Quantity: " + lblQty.Text + "<br />" + "<br />" + "Regards," + "<br />" +
"<br />" + "Customer Service" + "<br />" + "Touchstone Technology, Inc." + "<br />" + "address." +
"<br />" + "more address" + "<br />" + "Phone: phone number";
mail.HTMLBody += "<p>Web: <a href='http://www.web'>web</a></p></body></html>";
mail.Display(true);
// mail.Send();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Message", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
Je dépouillèrent ce que je pensais était pas nécessaire - s'il vous plaît ne hésitez pas à poser toutes les questions que je ne suis pas sûr de savoir comment clarifier ce que je dois Merci pour les réponses rapides habituelles et aider
S'il vous plaît utiliser [chaînes interpolées] (https://docs.microsoft.com/en-us/dotnet/ csharp/langue-référence/mots-clés/chaînes interpolées). (en C# 6 c'est beaucoup plus clair à lire) – SeM