2011-06-14 33 views
3

我已經去了每一個地方,無法弄清楚我做錯了什麼。我正在使用Microsoft.Win32.TaskScheduler庫。每次我遍歷代碼時,我的任務總是空。這是代碼。C#Task Scheduler庫的問題

using (SqlConnection myConnection2 = new SqlConnection(ConfigurationManager.ConnectionStrings["DBConnection"].ConnectionString)) 
{ 
    myConnection2.Open(); 
    SqlCommand cmd2 = new SqlCommand("sp_GetProcessStart", myConnection2); 
    cmd2.CommandType = CommandType.StoredProcedure; 
    cmd2.Parameters.AddWithValue("@ID", txtTaskID.Text); 

    SqlDataReader rdr = cmd2.ExecuteReader(); 

    if (rdr.HasRows) 
    { 
     while (rdr.Read()) 
     { 
      string task = rdr["TaskName"].ToString(); 
      string newName = task.Remove(task.Length - 4, 4); 

      using (TaskService ts = new TaskService()) 
      { 
       Task t; 
       t = ts.FindTask(newName); 
       if (t != null) 
       { 
        t.Run(); 
       } 
      } 
     } 
    } 
} 

存儲過程是SELECT ID FROM TABLE WHERE ID = @ID。該表具有我所有的ScheduledTasks,每個都分配了一個ID。但是,該表將它們存儲爲「Task.job」,因此我將刪除「.job」。不管我做什麼,t總是空,我可以找出原因。

+0

您是否嘗試加入FindTask? – Xaisoft 2011-06-14 16:03:18

+0

是的,FindTask中的名稱是正確的。 – Matt 2011-06-14 16:21:09

回答

0

工作了重來,我得到它的工作。來找出我沒有拉我的服務器變量,所以它不知道要運行什麼任務。

0

不要刪除.job擴展。它只會在.job擴展的情況下找到你的工作。

如果不使用

OpenTask("jobname"); 
+0

我已經嘗試手動添加任務名稱,它仍然無法正常工作。 – Matt 2011-06-14 16:20:49

+0

您確定該任務出現在TaskManager中,並且未被禁用或刪除。 – 2011-06-14 16:25:14

+0

也與Windows Vista以上所有的Operting系統使用Task Scheduler 2.0,它使用不同的庫。 – 2011-06-14 16:29:46