23 September, 2010
4 Comments
1 category
If you want to execute an existing Microsoft SQL Server Agent Job in C# you an use the following function:
The function uses SQL authentication to connect to the Microsoft SQL Server instance.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using Microsoft.SqlServer.Management.Smo; using Microsoft.SqlServer.Management.Smo.Agent; using Microsoft.SqlServer.Management.Common; using System.Data;
public override void Execute() { Server server = new Server(@"MyServer\MyInstanceName"); try { server.ConnectionContext.LoginSecure = false; server.ConnectionContext.Login = "MyName"; server.ConnectionContext.Password = "MyPassword"; server.ConnectionContext.Connect(); Job job = server.JobServer.Jobs[Name]; job.Start(); } finally { if (server.ConnectionContext.IsOpen) { server.ConnectionContext.Disconnect(); } } }
Tags: C#SQL Server
Category: Uncategorized
Add this after the above method to have the Job wait until it’s done
Thread.Sleep(5000);
job.Refresh();
while(job.CurrentRunStatus != JobExecutionStatus.Idle)
{
Thread.Sleep(5000);
job.Refresh();
}
I am using sql server 2005. i am not able to find these namespaces
using Microsoft.SqlServer.Management.Smo;
using Microsoft.SqlServer.Management.Smo.Agent;
using Microsoft.SqlServer.Management.Common;
How to do it in Sql server 2005 using C# 4.0.
Thanks for your help.
using Microsoft.SqlServer.Management.Smo;
//C:\Program Files\Microsoft SQL Server\110\SDK\Assemblies\microsoft.sqlserver.smo.dll
using Microsoft.SqlServer.Management.Smo.Agent;//the same
using Microsoft.SqlServer.Management.Common;
//C:\Program Files\Microsoft SQL Server\110\SDK\Assemblies\microsoft.sqlserver.connectioninfo.dll
Hi I receive Null Reference error Job.Start()