我正在尝试将SQL结果显示在电子邮件正文中。
运行以下代码时,我只会将查询的最后一行添加到电子邮件正文中。不是我想要的整个SQL表。如果运行时没有SMPTP电子邮件发送部分,则可以在控制台应用程序中显示完整表,但是一旦在变量“ body”中添加代码的电子邮件部分时将其添加到电子邮件的正文中,它就不会显示完整的结果。
string connString = @"Data Source= ServerName;Initial Catalog=Northwind;Integrated Security=True;
Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False;";
int empID;
string lName, fName, Title;
string body = "";
try
{
using (SqlConnection conn = new SqlConnection(connString))
{
string query = @"Select * from Employees";
SqlCommand cmd = new SqlCommand(query, conn);
conn.Open();
SqlDataReader dr = cmd.ExecuteReader();
Console.WriteLine(Environment.NewLine + "Retrieving data from database..." + Environment.NewLine);
Console.WriteLine("Retrieved records:");
if (dr.HasRows)
{
while (dr.Read())
{
empID = dr.GetInt32(0);
lName = dr.GetString(1);
fName = dr.GetString(2);
Title = dr.GetString(3);
body = empID + " " + lName + " " + fName + " " + Title;
Console.WriteLine(body);
}
}
else
{
Console.WriteLine("No data found.");
}
//close data reader
dr.Close();
//close connection
conn.Close();
//Console.ReadLine();
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
////////////////////////////////////////////////////////////
//SMTP Connection
////////////////////////////////////////////////////////////
SmtpClient client = new SmtpClient("smtp.gmail.com", 587);
client.EnableSsl = true;
client.Timeout = 30000;
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.UseDefaultCredentials = false;
client.Credentials = new NetworkCredential("xxx@gmail.com",
"xxx@321");
MailMessage msg = new MailMessage();
msg.To.Add("xxx@yahoo.com");
msg.From = new MailAddress("xxx@gmail.com");
msg.Subject = "Test v.2";
msg.Body = body;
client.Send(msg);
Console.WriteLine("Message Sent");
Console.ReadLine();
我希望将以下内容打印到电子邮件正文上。
1 Davolio Nancy Sales Representative
2 Fuller Andrew Vice President, Sales
3 Leverling Janet Sales Representative
4 Peacock Margaret Sales Representative
5 Buchanan Steven Sales Manager
6 Suyama Michael Sales Representative
7 King Robert Sales Representative
8 Callahan Laura Inside Sales Coordinator
9 Dodsworth Anne Sales Representative
在电子邮件正文上仅显示以下内容;
9 Dodsworth Anne Sales Representative
答案 0 :(得分:0)
问题是这一行:
body = empID + " " + lName + " " + fName + " " + Title;
您应该使用:
body += "\r\n" + empID + " " + lName + " " + fName + " " + Title;
但是请查看StringBuilder文档。最好应用那个。