2017-08-28 18 views
2

嗨我想創建一個蔚藍的計時器觸發c#函數,每5分鐘執行一次(只是爲了測試 - 將改爲每天)來更新SQL數據庫列。這裏是我的代碼作爲TimerTriggerCSharp1功能應用C#定時器Azure SQL函數

using System; 
    using System.Data.SqlClient; 
using System.Text.RegularExpressions; 
using Microsoft.SqlServer.Server; 




public static void Run(TimerInfo myTimer, TraceWriter log) 
{ 
log.Info($"C# Timer trigger function executed at: {DateTime.Now}"); 
     string connStr = "someconstring"; 
      SqlConnection conn = new SqlConnection(connStr); 
      conn.Open(); 
      string query = "UPDATE dbo.test_workstations SET email =   @email,  duration = @duration, status = @status, startDate = @startDate, endDate = @endDate WHERE endDate = @endDateToRemove"; 
     SqlCommand cmd = new SqlCommand(query, conn); 
     cmd.Parameters.AddWithValue("@email", DBNull.Value); 
     cmd.Parameters.AddWithValue("@duration", DBNull.Value); 
     cmd.Parameters.AddWithValue("@status", 0); 
     cmd.Parameters.AddWithValue("@startDate", DBNull.Value); 
     cmd.Parameters.AddWithValue("@endDate", DBNull.Value); 
     cmd.Parameters.AddWithValue("@endDateToRemove", DateTime.Now.ToShortDateString()); 
     cmd.ExecuteNonQuery(); 
     } 



} 

如下基本上我要做的是更新表設置基於該列被顯示今天的日期空值。

任何幫助,我得到一堆蔚藍錯誤 - 它在視覺工作室的作品!

2017-08-28T15:46:27.422 run.csx(4,17):error CS0234:命名空間'Microsoft'中不存在類型或命名空間名稱'SqlServer'(您是否缺少程序集引用? )

2017-08-28T15:46:27.422 run.csx(13,13):error CS0246:無法找到類型或名稱空間名稱'SqlConnection'(您是否缺少using指令或程序集引用? )

2017-08-28T15:46:27.422 run.csx(13,38):error CS0246:無法找到類型或名稱空間名稱'SqlConnection'(您是否缺少using指令或程序集引用? )

2017-08-28T15:46:27.422 run.csx(16,13):error CS0246:無法找到類型或名稱空間名稱'SqlCommand'(您是否缺少使用指令或程序集引用?)

2017-08-28T15:46:27.422 run.csx(16,34):error CS0246:無法找到類型或命名空間名稱'SqlCommand'(缺少使用指令或程序集引用嗎?)

2017-08-28T15:46:27.454執行函數時發生異常:Functions.TimerTriggerCSharp1。 Microsoft.Azure.WebJobs.Script:腳本編譯失敗。

2017-08-28T15:46:27.485功能完成(失敗,ID = 612e3097-849f-4816-b026-777cfb50c46a,持續時間= 157ms)

+0

使用「Microsoft.SqlServer.Server」的原因是什麼?導入這個名字空間看起來多餘。 –

回答

2

您需要集的引用System.Data.dll中,你做這在C#這樣的腳本:

#r "System.Data" 

using System; 
using System.Data.SqlClient; 
. . . 

System.Data.dll中是.NET Framework基類庫(BCL)(所以它保證是存在)的一部分,但它不是默認的引用Azure函數環境。這在Azure函數文檔中解釋爲here

而且您不需要導入Microsoft.SqlServer.Server命名空間。你需要的一切都在System.Data.SqlClient中。

+0

非常感謝,不知道我是怎麼錯過的 – rahulchawla