Как преобразовать столбец из таблицы в наборе данных в строку, разделенную запятыми в C #? - PullRequest
0 голосов
/ 21 апреля 2019

Я делаю приложение Windows Form на C #, оно должно иметь возможность отправлять электронные письма всем идентификаторам получателей, которые находятся в таблице в базе данных Access.

Я уже понимаю, как отправитьпочты и даже успешно выполненные тесты, но я не понимаю, как преобразовать столбец, в котором есть все идентификаторы электронной почты, в строку, разделенную запятыми.

Я также немного озадачен, если этот код находится внутри кода форм или где-то ещеelse.

Я уже пытался использовать циклы 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());
    }
}

На данный момент я добился отправки почты на учетные записи, указанные в коде, так что это работаетмне нужны учетные записи в базе данных в отдельном формате с запятой, чтобы я мог использовать их в этой кнопке.

Ответы [ 2 ]

0 голосов
/ 21 апреля 2019

Неясно, почему бы вам просто не запросить эту информацию в базе данных. Однако, если у вас уже есть DataTable, то, как указали другие, вам нужно будет перебрать коллекцию DataTable.Rows и извлечь ячейку адреса электронной почты из этой строки, добавить запятую, а затем продолжить это для всех строк. в таблице. 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();
}
0 голосов
/ 21 апреля 2019

Насколько я понимаю, вы должны попытаться разбить эту строку, а затем добавить каждое электронное письмо, которое я хотел бы в предложении "Кому".

Один пример иллюстрируется здесь: -

https://www.c -sharpcorner.com / UploadFile / 0c1bb2 / отправка-Email-на-множественным recipeint-используя-Asp-Net /

...