我需要一些有关如何自动更新StartDate和EndDate以便下次执行的帮助。此时,我在sql数据库中手动添加StartDate和EndDate,如果我没有更改StartDate和EndDate,我的报告将使用相同的StartDate和EndDate生成。如果你们都能提出任何想法或建议,那就表示赞赏。谢谢。
static void Main(string[] args)
{
DateTime start = System.DateTime.Now.AddMinutes(1);
Schedule.PeriodicSchedules schedule =
new Schedule.PeriodicSchedules(start,
Schedule.PeriodicSchedules.Frequency.Minutely);
schedule.Elapsed += new System.Timers.ElapsedEventHandler(GenerateReport);
schedule.Enabled = true;
Console.ReadLine();
}
static void GenerateReport(object sender, EventArgs e)
{
if (TypeOfReport == "BillingReport")
{
DateOfExecution = DateTime.Parse(strDOE);
Schedule.PeriodicSchedules s =
new Schedule.PeriodicSchedules(DateOfExecution,
Schedule.PeriodicSchedules.Frequency.Weekly);
crRpt.Load(BillingReport);
ReportLogin(crRpt);
while (ThisReader.Read())
{
//StartDate and EndDate >>next execution?
crRpt.SetParameterValue("@CollectionStartDate", StartDate);
crRpt.SetParameterValue("@CollectionEndDate", EndDate);
crRpt.SetParameterValue("@SpokeCode", SpokeCode);
}
}
if (TypeOfReport == "ImageReport")
{
DateOfExecution = DateTime.Parse(strDOE);
Schedule.PeriodicSchedules s =
new Schedule.PeriodicSchedules(DateOfExecution,
Schedule.PeriodicSchedules.Frequency.Monthly);
crRpt.Load(ImageReport);
ReportLogin(crRpt);
crRpt.SetParameterValue("@CollectionStartDate", StartDate);
crRpt.SetParameterValue("@CollectionEndDate", EndDate);
crRpt.SetParameterValue("@SpokeCode", SpokeCode);
}
}
答案 0 :(得分:1)
我设法通过调用另一种方法来自动更新我的DateOfExecution。如果有人有另一种方式,请告诉我。 :)
static void GenerateReport(object sender, EventArgs e)
{
if (TypeOfReport == "BillingReport")
{
......
DateOfExecution = DateTime.Parse(strDOE);
Schedule.PeriodicSchedules s = new Schedule.PeriodicSchedules(DateOfExecution, Schedule.PeriodicSchedules.Frequency.Minutely);
//weekly
DateTime StartDate = DateOfExecution.AddDays(-7);
DateTime EndDate = DateOfExecution.AddDays(-1);
..........
UpdateWeekly(DateOfExecution, strReportType);
}
}
static void UpdateWeekly(DateTime DateOfExecution, String strReportType)
{
DateOfExecution = DateOfExecution.AddMinutes(2);
SqlConnection thisConnection = new SqlConnection(SQLConnection);
thisConnection.Open();
SqlCommand thisCommand = thisConnection.CreateCommand();
//thisCommand.CommandText = "INSERT INTO dbo.Schedules (DateOfExecution)" + "Values('"+DateOfExecution+"')";
thisCommand.CommandText = "UPDATE dbo.Schedule set DateOfExecution = '" + DateOfExecution + "' WHERE TypeOfReport = '" + strReportType + "'";
thisCommand.ExecuteNonQuery();
}