使用 .NET 应用中的 C# 代码运行 SSIS 包
适用于: SQL Server Azure 数据工厂中的 SSIS Integration Runtime
本快速入门演示如何编写用于连接数据库服务器和运行 SSIS 包的 C# 代码。
可以使用 Visual Studio、Visual Studio Code 或所选的另一工具来创建 C# 应用。
先决条件
开始之前,请确保已安装 Visual Studio 或 Visual Studio Code。 从 Visual Studio 下载中下载免费的社区版 Visual Studio 或免费的 Visual Studio Code。
Azure SQL 数据库服务器在端口 1433 上进行侦听。 如果尝试从企业防火墙内连接到 Azure SQL 数据库服务器,必须在企业防火墙中打开该端口,才能成功连接。
对于 Azure SQL 数据库,请获取连接信息
要在 Azure SQL 数据库上运行包,请获取连接到 SSIS 目录数据库 (SSISDB) 所需的连接信息。 在接下来的步骤中需要完全限定的服务器名称和登录信息。
- 登录到 Azure 门户。
- 从左侧的菜单选择“SQL 数据库”,然后选择“SQL 数据库”页中的 SSISDB 数据库。
- 在数据库的“概述” 页上,查看完全限定的服务器名称。 若想查看“单击以复制”选项,将鼠标悬停在服务器名称上 。
- 如果忘记了 Azure SQL 数据库服务器登录信息,导航到 SQL 数据库服务器页以查看服务器管理员名称。 如有必要,可重置密码。
- 单击“显示数据库连接字符串”。
- 查看完整的 ADO.NET 连接字符串。 或者,此代码可使用
SqlConnectionStringBuilder
和提供的独立参数值重新创建此连接字符串。
创建一个新的 Visual Studio 项目
- 在 Visual Studio 中,选择“文件”、“新建”、“项目”。
- 在“新建项目”对话框中,展开“Visual C#”。
- 选择“控制台应用”并在项目名称处输入“run_ssis_project”。
- 单击“确定”以在 Visual Studio 中创建并打开新的项目。
添加引用
- 在解决方案资源管理器中,右键单击“引用”文件夹并选择“添加引用”。 打开“引用管理器”对话框。
- 在“引用管理器”对话框中,展开“程序集”并选择“扩展”。
- 选择以下要添加的两个引用:
- Microsoft.SqlServer.Management.Sdk.Sfc
- Microsoft.SqlServer.Smo
- 单击“浏览”按钮以将引用添加到 Microsoft.SqlServer.Management.IntegrationServices 中。 (仅在全局程序集缓存 (GAC) 中安装该程序集。) 打开“选择要引用的文件”对话框。
- 在“选择要引用的文件”对话框中,导航到包含此程序集的 GAC 文件夹。 通常,此文件夹位置为
C:\Windows\assembly\GAC_MSIL\Microsoft.SqlServer.Management.IntegrationServices\14.0.0.0__89845dcd8080cc91
。 - 选择文件夹中的程序集(即 .dll 文件),然后单击“添加”。
- 单击“确定”以关闭“引用管理器”对话框并添加三个引用。 若要确保是三个引用,检查解决方案资源管理器中的“引用”列表。
添加 C# 代码
打开 Program.cs。
将 Program.cs 的内容替换为以下代码。 为服务器、数据库、用户和密码添加适当的值。
注意
下面的示例使用 Windows 身份验证。 要使用 SQL Server 身份验证,请将 Integrated Security=SSPI;
参数替换为 User ID=<user name>;Password=<password>;
。 如果连接到 Azure SQL 数据库服务器,则无法使用 Windows 身份验证。
using Microsoft.SqlServer.Management.IntegrationServices;
using System.Data.SqlClient;
namespace run_ssis_package
{
class Program
{
static void Main(string[] args)
{
// Variables
string targetServerName = "localhost";
string folderName = "Project1Folder";
string projectName = "Integration Services Project1";
string packageName = "Package.dtsx";
// Create a connection to the server
string sqlConnectionString = "Data Source=" + targetServerName +
";Initial Catalog=master;Integrated Security=SSPI;";
SqlConnection sqlConnection = new SqlConnection(sqlConnectionString);
// Create the Integration Services object
IntegrationServices integrationServices = new IntegrationServices(sqlConnection);
// Get the Integration Services catalog
Catalog catalog = integrationServices.Catalogs["SSISDB"];
// Get the folder
CatalogFolder folder = catalog.Folders[folderName];
// Get the project
ProjectInfo project = folder.Projects[projectName];
// Get the package
PackageInfo package = project.Packages[packageName];
// Run the package
package.Execute(false, null);
}
}
}
运行代码
- 若要运行应用程序,请按 F5。
- 验证包是否按预期运行,然后关闭应用程序窗口。