C# Winforms中的SQL作业状态

C# Winforms中的SQL作业状态,c#,sql,.net,sql-server,winforms,C#,Sql,.net,Sql Server,Winforms,我已经创建了一个windows应用程序,它可以触发SQL Server上的SQL作业。这就是我编写代码来触发作业的方式 SqlCommand ExecJob = new SqlCommand(); ExecJob.Connection = sqlConn; ExecJob.CommandType = CommandType.StoredProcedure; ExecJob.CommandText = "msdb.dbo.sp_start_job"; ExecJob.Parameters.Add

我已经创建了一个windows应用程序,它可以触发SQL Server上的SQL作业。这就是我编写代码来触发作业的方式

SqlCommand ExecJob = new SqlCommand();

ExecJob.Connection = sqlConn;
ExecJob.CommandType = CommandType.StoredProcedure;
ExecJob.CommandText = "msdb.dbo.sp_start_job";
ExecJob.Parameters.AddWithValue("@job_name", "DataImport");

sqlConn.Open();
ExecJob.ExecuteNonQuery();

它运行正常,大约在40秒内完成。我不想在我的程序中启用某些功能,直到此作业成功完成。有人知道我怎么做吗

我想我有点理解你的问题。。。最好的方法是将存储过程的输出设置为一个特定的值,然后将该值传递到程序中,并检查该值,根据过程是否成功运行,查看是否应启用或禁用功能

在这里,您可以找到一篇文章,介绍如何获取sql作业的状态


然后,您只需要定义一个计时器,用于汇集数据库并请求作业状态。

不理解您的问题。为什么不在ExecuteOnQuery完成后立即启用函数?ExecuteOnQuery的可能重复只是启动作业的查询。这项工作可能需要40秒,但SqlCommand不会坐等它。