如何将数据集中的 table 列转换为 C# 中以逗号分隔的字符串?

How to convert a column from a table in a dataset to a string separated by commas in C#?

我正在用 C# 创建一个 windows 表单应用程序,它必须能够向 Access 数据库中 table 中的所有收件人 ID 发送电子邮件。

我已经知道如何发送邮件,甚至成功地进行了测试,但我不明白如何将包含所有电子邮件 ID 的列转换为逗号分隔的字符串。

如果此代码位于表单代码或其他地方,我也有点困惑。

我已经尝试过使用 foreach 循环,但出于某种原因,它们有错误提示我无法使用它们。

我也阅读了一些 linq,但我什至无法理解在我的程序中在哪里实现这样的代码。

这是电子邮件发送按钮的代码:

private void button1_Click(object sender, EventArgs e)
{
    try
    {
        MailMessage mail = new MailMessage();
        SmtpClient smtpserver = new SmtpClient("smtp.gmail.com");

        mail.From = new MailAddress("latinaultimatesite@gmail.com");

        mail.To.Add("diomidiov@gmail.com,ninjaboy.abel@gmail.com");
        mail.Subject = "Que xopa";
        mail.Body = "probando 1 2 3";

        smtpserver.Port = 587;
        smtpserver.Credentials = new 
        System.Net.NetworkCredential("latinaultimatesite@gmail.com","proyectofinal69lus");
        smtpserver.EnableSsl = true;

        smtpserver.Send(mail);
        MessageBox.Show("mail Send");
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.ToString());
    }
}

现在我已经实现了向代码中看到的帐户发送邮件,这样就可以了,我需要的是数据库中的帐户采用分隔的逗号字符串格式,以便我可以在此按钮中使用它们。

根据我的理解,您应该尝试拆分该字符串,然后将我想要的每封电子邮件添加到 'To' 子句。

此处举例说明:-

https://www.c-sharpcorner.com/UploadFile/0c1bb2/sending-email-to-multiple-recipeint-using-Asp-Net/

不清楚您为什么不简单地查询数据库以获取此信息。但是,如果您已经有了 DataTable 那么,正如其他人指出的那样,您将需要遍历 DataTable.Rows 集合并从该行中获取电子邮件地址单元格,添加一个逗号,然后继续此操作对于 table 中的所有行。 StringBuilder 可能有助于构建此逗号分隔的电子邮件字符串。它可能看起来像下面...

private string GetEmailAddress(DataTable dt) {
  StringBuilder sb = new StringBuilder();
  for (int i = 0; i < dt.Rows.Count; i++) {
    sb.Append(dt.Rows[i]["Email"].ToString());
    if (i < dt.Rows.Count - 1)
      sb.Append(",");
  }
  sb.AppendLine();
  return sb.ToString();
}