由于某种原因,不能隐式地将类型'string'转换为'int'

Amr*_*nem 0 c# email ms-access

此代码将电子邮件发送到访问数据库中保存的多个电子邮件地址,但我在line(email =read_Email.GetValue(i).ToString();)中遇到问题不能隐式地将类型'string'转换为'int'

任何帮助.

try
{
    ArrayList list_emails = new ArrayList();
    int i = 0, email = 0;
    connection.Open(); //connection to the database.
    OleDbCommand cmd_Email = new OleDbCommand("Select Email from Email_Table", connection);
    OleDbDataReader read_Email = cmd_Email.ExecuteReader();
    while (read_Email.Read())
    {
        email =read_Email.GetValue(i).ToString();
        list_emails.Add(email); //Add email to a arraylist
        i = i + 1 - 1; //increment or ++i
    }
    read_Email.Close();
    connection.Close(); //Close connection

    foreach (string email_to in list_emails)
    {
        MailMessage mail = new MailMessage();
        mail.To.Add(email_to);
        mail.Subject = label2.Text + "   station  " + label1.Text;
        mail.From = new MailAddress("amrghonem20@gmail.com");
        mail.Body = "Test";
        SmtpClient smtp = new SmtpClient("smtp.gmail.com");
        smtp.Send(mail);
    }
}
catch (Exception ex)
{
    MessageBox.Show("Error: " + ex.Message);
}
Run Code Online (Sandbox Code Playgroud)

Jon*_*lis 5

您将电子邮件初始化为整数:

int i = 0, email = 0;
Run Code Online (Sandbox Code Playgroud)

并且您尝试为其分配字符串值:

email =read_Email.GetValue(i).ToString();
Run Code Online (Sandbox Code Playgroud)

你需要创建email一个字符串或为它分配一个整数值.