Run SSIS Package programatically

here is a small sample that show how to run an existing package from a .Net program.

This sample show how to replace target and source connection string and give a value to a package variable.

It show too how to register package event.

using Runtime = Microsoft.SqlServer.Dts.Runtime;

private PackageEvents packageEvents;

public event PackageEventEventHandler packageEvent = null;

public event PackageProgressEventHandler packageProgress = null;


packageEvents = new PackageEvents();

packageEvents.packageEvent += new PackageEventEventHandler(packageEvents_packageEvent);

packageEvents.packageProgress += new PackageProgressEventHandler(packageEvents_packageProgress);


public bool Execute(string packagePath, string sourceConnectionString, string targetConnectionString, string packageVariable)


Runtime.Application app = new Runtime.Application();

Runtime.Package package = app.LoadPackage(packagePath, null);

package.InteractiveMode = false;

// Target is the name of the target connection in the SSIS package

package.Connections["Target"].ConnectionString = targetConnectionString;

package.Connections["Source"].ConnectionString = sourceConnectionString;

// The package have a variable, we give it the value

package.Variables["myVar"].Value = packageVariable;

Runtime.DTSExecResult executionResult = package.Execute(null, null, packageEvents, null, null);

if (executionResult == Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Failure)


return false;


return true;


void packageEvents_packageProgress(int percentComplete)


if (packageProgress != null)



void packageEvents_packageEvent(EventType type, string message)


if (packageEvent != null)

packageEvent(type, message);


Skip to main content