我正在尝试在c#中简单地从SQL DB中提取一组行并运行每一行我得到一些代码,这些代码将为我返回的每一行发送一次电子邮件。
下面的代码应该尽我所知并且不会返回错误,我很难过。你可以假设“ConnectionString”是有效的,并且在网站上的很多地方使用,并且那里定义的查询肯定应该从我的数据库返回一行,因为我通过运行它来验证完全相同的行。使用sql mgmt studio express的原始数据库,我得到了我期待的结果。
所有我得到的只是在我尝试进入循环之前发生的单个“我在这里”电子邮件。
非常感谢聪明人提出的任何见解,谢谢你们!
string query4 = "SELECT TOP(1)* FROM subscribers WHERE subscriber = 'test'";
string number; string pix; string watcheremail; string watcher;
MailMessage message25 = new MailMessage();
message25.From = new MailAddress("no-reply@local.com");
message25.To.Add(new MailAddress("myemailaddress"));
message25.Body = "i got here";
SmtpClient client25 = new SmtpClient();
client25.Send(message25);
using (SqlConnection connection = new SqlConnection("ConnectionString"))
{
connection.Open();
using (SqlDataAdapter people = new SqlDataAdapter(query4, connection))
{
DataTable people1 = new DataTable();
people.Fill(people1);
foreach (DataRow row in people1.Rows)
{
watcher = row["subscriber"].ToString();
MailMessage message252 = new MailMessage();
message252.From = new MailAddress("no-reply@local.com");
message252.To.Add(new MailAddress("myemailaddress"));
message252.Body = "AND THEN I GOT HERE TOO - " + watcher;
SmtpClient client252 = new SmtpClient();
client252.Send(message252);
}
}
}
答案 0 :(得分:2)
以下是有关如何调试代码的一些提示。请不要将其作为完整指南 - 通过阅读正确的介绍,您可以了解很多关于调试的知识。但是,这可能会让你在你现在遇到的特定问题上更进一步。
同时查看“调试”菜单及其“Windows”子菜单,同时单步执行程序(即某处某处有黄线)。如果您想尝试和玩,请尝试这些,尤其是“Autos”,“Locals”和“Call Stack”。玩得开心!
答案 1 :(得分:0)
以下是一些可能有帮助的建议......
您是否在控制台应用中运行此功能?如果是这样,请用Console.WriteLine(“Some Text”)替换发送的电子邮件,这可以帮助您在不使用调试器的情况下查看代码的位置。
您已从订阅者中选择前1 * ...您确定查询是否返回结果?