【发布时间】:2017-08-28 15:47:29
【问题描述】:
您好,我正在尝试创建一个 azure timer trigger c# 函数,该函数每 5 分钟执行一次(只是为了测试 - 将更改为每天)以更新 SQL 数据库列。这是我在 TimerTriggerCSharp1 函数应用程序中的代码,如下所示
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();
}
}
基本上我要做的是更新表以根据列是否显示今天的日期来设置空值。
任何帮助,我在 azure 中遇到了一堆错误 - 它在 Visual Studio 中有效!
2017-08-28T15:46:27.422 run.csx(4,17):错误 CS0234:命名空间“Microsoft”中不存在类型或命名空间名称“SqlServer”(您是否缺少程序集引用?)
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)
【问题讨论】:
-
使用“Microsoft.SqlServer.Server”的原因是什么?导入这个命名空间似乎是多余的。
标签: c# sql-server azure timer triggers