2012-02-09 82 views
0

我需要一些關於如何自動更新StartDate和EndDate以便下次執行的幫助。此時,我手動在sql數據庫中添加StartDate和EndDate,如果我沒有更改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); 
    } 
}  

回答

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(); 
    } 
相關問題