Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 由于某些原因,无法将类型“string”隐式转换为“int”_C#_Email_Ms Access - Fatal编程技术网

C# 由于某些原因,无法将类型“string”隐式转换为“int”

C# 由于某些原因,无法将类型“string”隐式转换为“int”,c#,email,ms-access,C#,Email,Ms Access,此代码用于向access数据库中保存的多个电子邮件地址发送电子邮件,但我在行email=read_email.GetValuei.ToString中遇到问题;无法将类型“string”隐式转换为“int” 任何帮助 try { ArrayList list_emails = new ArrayList(); int i = 0, email = 0; connection.Open(); //connection to the database. OleDbCom

此代码用于向access数据库中保存的多个电子邮件地址发送电子邮件,但我在行email=read_email.GetValuei.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);
}

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

int i = 0, email = 0;
您正在尝试为其分配字符串值:

email =read_Email.GetValue(i).ToString();

您需要将电子邮件设置为字符串或为其指定整数值

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

int i = 0, email = 0;
您正在尝试为其分配字符串值:

email =read_Email.GetValue(i).ToString();

您需要将电子邮件设置为字符串或为其指定整数值

不需要在循环中创建对象,而是使用类似的方法:

namespace ConsoleApplication3
{
    using System;
    using System.Collections.Generic;
    using System.Data.OleDb;
    using System.Linq;
    using System.Net.Mail;

    public class Program
    {
        public static void Main()
        {
            try
            {
                List<string> emails = new List<string>();

                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();
                if (read_Email.HasRows)
        {
                while (read_Email.Read())
                {
                    email = read_Email.GetString(0).FirstOrDefault();
                    emails.Add(email);
                }
                read_Email.Close();
                connection.Close(); //Close connection
                MailMessage message = new MailMessage() { 
                    Subject = label2.Text + "   station  " + label1.Text, 
                   From = new MailAddress("amrghonem20@gmail.com"),
                    Body = "Test"; 
            };

            SmtpClient smtp = new SmtpClient("smtp.gmail.com");
                emails.ForEach(to =>
                {
                    message.To.Clear();
                    message.To.Add(to);
                    smtp.Send(message);
                });
            }
}
            catch (Exception ex)
            {
                MessageBox.Show("Error: " + ex.Message);
            }
        }
    }
}

不需要在循环中创建对象,而是使用类似以下内容:

namespace ConsoleApplication3
{
    using System;
    using System.Collections.Generic;
    using System.Data.OleDb;
    using System.Linq;
    using System.Net.Mail;

    public class Program
    {
        public static void Main()
        {
            try
            {
                List<string> emails = new List<string>();

                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();
                if (read_Email.HasRows)
        {
                while (read_Email.Read())
                {
                    email = read_Email.GetString(0).FirstOrDefault();
                    emails.Add(email);
                }
                read_Email.Close();
                connection.Close(); //Close connection
                MailMessage message = new MailMessage() { 
                    Subject = label2.Text + "   station  " + label1.Text, 
                   From = new MailAddress("amrghonem20@gmail.com"),
                    Body = "Test"; 
            };

            SmtpClient smtp = new SmtpClient("smtp.gmail.com");
                emails.ForEach(to =>
                {
                    message.To.Clear();
                    message.To.Add(to);
                    smtp.Send(message);
                });
            }
}
            catch (Exception ex)
            {
                MessageBox.Show("Error: " + ex.Message);
            }
        }
    }
}

您已将电子邮件声明为int。您正在为其分配字符串。错误会准确地告诉您问题是什么。谢谢字符串email后没有错误消息您已将电子邮件声明为int。您正在为其分配字符串。该错误会准确地告诉您问题所在。感谢您在发送字符串电子邮件后没有错误消息