我有一个Windows控制台应用程序。在这个Windows控制台项目中,我将发送一封电子邮件。
这让我很困惑,因为当我从.exe文件执行它时,我无法获得最后一行发送电子邮件 - 但是如果我从Visual Studio调试它就可以工作。
我已经确定我创建的所有.dll都是Copy Local = True
。但它仍然不起作用。
这是我的代码:
static void Main(string [] args) {
DataSet dtPending = db.GetDataSet("GET_REMINDER_BACKDATE", CommandType.StoredProcedure);
DataTable ds = dtPending.Tables[0];
System.Console.WriteLine("Start looking pending approval ....");
System.Console.WriteLine();
foreach (DataRow row in ds.Rows)
{
try
{
System.Console.WriteLine(" Process {0} ..", row["DestinationName"].ToString());
db.AddParameter("RequestID", row["RequestID"].ToString());
db.AddParameter("ServerUri", ConfigurationManager.AppSettings["MIS_url"]);
DataSet result = db.GetDataSet("GET_EMAIL_DATA_REMINDER", CommandType.StoredProcedure);
DataTable datas = result.Tables[0];
foreach (DataRow data in datas.Rows)
{ Mail.Send(ConfigurationManager.AppSettings["mailSender"], row["DestinationEmail"].ToString(), "", data["EmailSubject"].ToString(), data["EmailContent"].ToString());
}
System.Console.WriteLine(" Insert to pending approval log");
InserReminderBackdateLog(Guid.Parse(row["RequestID"].ToString()), row["RefferenceNo"].ToString(), row["EmployeeID"].ToString(), row["SBU"].ToString(), "1");
System.Console.WriteLine();
}
catch (Exception ex)
{
//do nothing
System.Console.WriteLine(" Error : {0}", ex.Message);
}
}
System.Console.WriteLine("Finish ....");
//System.Console.ReadKey();
}
这是因为foreach
还是应用程序本身?我在代码中找不到我的错误。
答案 0 :(得分:0)
试试这个: 而不是使用数据表,使用
DataSet ds = new DataSet(yourSqlCommandHere);
SqlDataAdapter da = new SqlDataAdapter();
da.Fill(ds);
将你的foreach替换为
foreach(DataRow dr in ds.Tables[0].Rows)
{
//Your code here.
}