从 .NET 应用程序获取 SSIS 包和执行列表






1.90/5 (6投票s)
2006 年 10 月 8 日
2分钟阅读

83102
本文将指导您如何使用 .NET 程序集获取 SSIS 包列表并执行它们
引言
大家好,
这里有一些从 .NET 应用程序调用 SSIS 包的酷炫方法。
通常,SSIS 包部署在 SQL Server 上,或者可能作为 .dtsx 文件存在于文件系统中。执行 SSIS 包的常见场景是在 SQL Server 上部署它,然后为其附加计划以进行执行。但有时客户可能会要求通过用户界面执行 SSIS 包,因为不需要连接到 SQL Server 的技术知识…?在 SQL Server 上查找 SSIS 包…?并从 SQL Server 执行 SSIS 包…?
现在的问题是,
如何获取部署在 SQL Server 上的 SSIS 包列表…?
如何手动执行 SSIS 包…?
以下是上述问题的答案,
1. 将以下程序集导入到您的应用程序中
System.Data.SqlTypes;
Microsoft.SqlServer.Dts.Runtime;
Microsoft.SqlServer.Management.Smo;
Microsoft.SqlServer.Management.Smo.Agent;
Microsoft.SqlServer.Management.Common;
System.Data.SqlClient;
2. 添加以下代码段,它将返回部署在 SQL Server 上的 SSIS 包的集合
Microsoft.SqlServer.Dts.Runtime.Application app = new Microsoft.SqlServer.Dts.Runtime.Application();
PackageInfos pInfos = app.GetPackageInfos("\\", ConfigurationSettings.AppSettings["ServerIp"].ToString(), "", "");
* ServerIp 对应于 SQL Server IP 地址
3. 现在我们将包信息(这里是 SSIS 包的名称)添加到下拉列表中,以便用户可以选择 SSIS 包并执行它。
foreach (PackageInfo pInfo in pInfos)
{
if (pInfo.Name != "Maintenance Plans")
ComboBoxJob.Items.Add(pInfo.Name);
}
4. 以下代码段显示了如何执行包。当用户单击屏幕截图所示的“执行”按钮时,将调用此代码段。
Microsoft.SqlServer.Dts.Runtime.Application app;
app = new Microsoft.SqlServer.Dts.Runtime.Application();
DTSExecResult pkgResults_Sql;
Package pkgIn = new Package();
pkgIn = app.LoadFromSqlServer("\\"+ComboBoxJob.SelectedItem. ToString().Trim(),ConfigurationSettings.AppSettings["ServerIp"].ToString(), "", "", null);
pkgResults_Sql = pkgIn.Execute();
//消息框将显示成功/失败
MessageBox.Show(pkgResults_Sql.ToString());
5. 为了执行整个功能,用户必须对 MSDB 数据库具有相应的权限。
以下图显示了应用程序的外观。
下拉列表由 SQL Server 上存在的 SSIS 包填充,如下所示,
7. 选择包,然后通过单击执行按钮执行它。
注意 - 要在 SQL Server 上部署 SSIS 包,请查看我的文章“在 SQL Server 上部署 SSIS 包”
本文将指导您如何使用 .NET 程序集获取 SSIS 包列表并执行它们