2017-08-28 4 views
2

こんにちは私は、SQLデータベースの列を更新するために5分ごとに(ちょうどテストする - 毎日に変更されます)実行する紺色のタイマートリガC#関数を作成しようとしています。 TimerTriggerCSharp1機能アプリにC#Timer 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(); 
     } 



} 

を次のようにここに私のコードは基本的に私は何をしようとしている列は、今日の日付を表示されている場合に基づいて、null値を設定するには、更新テーブルです。

何か助けてください私は青​​空のエラーの束を取得しています - それはビジュアルスタジオで動作します!

2017-08-28T15:46:27.422 run.csx(4,17):エラーCS0234:型または名前空間の名前 'SqlServer'が名前空間 'Microsoft'に存在しません(アセンブリ参照がありませんか? )

2017-08-28T15:46:27.422 run.csx(13,13):エラーCS0246:型または名前空間の名前 'SqlConnection'が見つかりませんでした(usingディレクティブまたはアセンブリ参照がありませんか? )

2017-08-28T15:46:27.422 run.csx(13,38):エラーCS0246:型または名前空間の名前 'SqlConnection'が見つかりませんでした(usingディレクティブまたはアセンブリ参照がありませんか? )

2017-08-28T15:46:27.422 run.csx(16,13):エラーCS0246:型または名前空間の名前 'SqlCommand'が見つかりませんでした(usingディレクティブまたはアセンブリ参照がありません)

2017-08-28T15:46:27.422 run.csx(16,34):エラーCS0246:型または名前空間の名前 'SqlCommand'が見つかりませんでした(usingディレクティブまたはアセンブリ参照がありません)

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へのアセンブリ参照を必要とし、

#r "System.Data" 

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

のSystem.Data.dllは、.NET Frameworkの基本クラスライブラリ(BCL)(存在することが保証されています)の一部ですが、それはすることで、デフォルトで参照されていないです。これはC#スクリプトであなたは、このように行いますAzure関数環境です。これは、Azure関数ドキュメントのhereで説明されています。

そして、Microsoft.SqlServer.Server名前空間をインポートする必要はありません。必要なものはすべてSystem.Data.SqlClientにあります。

+0

どうもありがとうございました – rahulchawla

関連する問題