C# &引用;参数不存在或您没有足够的权限;在C中运行SSIS包时#

C# &引用;参数不存在或您没有足够的权限;在C中运行SSIS包时#,c#,sql-server,winforms,ssis,etl,C#,Sql Server,Winforms,Ssis,Etl,我有一个包含一系列变量的SSIS包,如下所示: 我正在尝试使用以下代码从C#Windows窗体应用程序调用SSIS包: // Create a connection to the server string sqlConnectionString = "Data Source=BSQL_01;Initial Catalog=master;Integrated Security=SSPI;"; SqlConnection sqlConnection = new SqlConnection(sql

我有一个包含一系列变量的SSIS包,如下所示:

我正在尝试使用以下代码从C#Windows窗体应用程序调用SSIS包:

// Create a connection to the server
string sqlConnectionString = "Data Source=BSQL_01;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["PORGPackages"];

// Get the project
ProjectInfo project = folder.Projects["PORGPackages"];

// Get the package
PackageInfo package = project.Packages["POHandler.dtsx"];

// Add project parameter
Collection<PackageInfo.ExecutionValueParameterSet> executionParameter = new Collection<PackageInfo.ExecutionValueParameterSet>();
executionParameter.Add(new PackageInfo.ExecutionValueParameterSet { ObjectType = 20, ParameterName = "SessionID", ParameterValue = "636943168325507712" });

// Run the package
long executionIdentifier = package.Execute(false, null, executionParameter);

ExecutionOperation executionOperation = integrationServices.Catalogs["SSISDB"].Executions[executionIdentifier];

while (!executionOperation.Completed) {
    System.Threading.Thread.Sleep(5000);
    executionOperation.Refresh();
    MessageBox.Show("Running...");
}

if (executionOperation.Status == Operation.ServerOperationStatus.Success) {
    Console.WriteLine("Success");
} else if (executionOperation.Status == Operation.ServerOperationStatus.Failed) {
    Console.WriteLine("Failed");
} else {
    Console.WriteLine("Something Went Really Wrong");
}
//创建到服务器的连接
string sqlConnectionString=“数据源=BSQL_01;初始目录=主目录;集成安全性=SSPI;”;
SqlConnection SqlConnection=新的SqlConnection(sqlConnectionString);
//创建集成服务对象
IntegrationServices IntegrationServices=新的IntegrationServices(sqlConnection);
//获取集成服务目录
Catalog Catalog=integrationServices.Catalogs[“SSISDB”];
//获取文件夹
CatalogFolder=catalog.Folders[“PORGPackages”];
//获得项目
ProjectInfo项目=文件夹.Projects[“PORGPackages”];
//拿到包裹
PackageInfo package=project.Packages[“POHandler.dtsx”];
//添加项目参数
Collection executionParameter=新集合();
添加(新的PackageInfo.ExecutionValueParameterSet{ObjectType=20,ParameterName=“SessionID”,ParameterValue=“636943168325507712”});
//运行包
long executionIdentifier=package.Execute(false,null,executionParameter);
ExecutionOperation ExecutionOperation=integrationServices.Catalogs[“SSIDB”]。执行[executionIdentifier];
而(!executionOperation.Completed){
系统线程线程睡眠(5000);
executionOperation.Refresh();
MessageBox.Show(“正在运行…”);
}
if(executionOperation.Status==Operation.ServerOperationStatus.Success){
Console.WriteLine(“成功”);
}else if(executionOperation.Status==Operation.ServerOperationStatus.Failed){
控制台写入线(“失败”);
}否则{
WriteLine(“出了什么问题”);
}
我得到以下错误:

参数“SessionID”不存在或您没有足够的 权限

我添加的参数正确吗?我不知道我能不能看一下它是否被设置,或者我是否得到了许可

我添加的参数正确吗

您已声明名为@SessionID的变量不是参数。

如果需要传递变量值,则可以参考以下链接:

有关这两个对象(变量和参数)的更多信息,请参阅以下文章:


啊,愚蠢的错误。将其作为包参数添加,并将ObjectType更新为20,它就可以工作了。现在我得到了一个完全不同的错误(