Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将变量从c#传递到ssis包_C#_Asp.net_Ssis - Fatal编程技术网

如何将变量从c#传递到ssis包

如何将变量从c#传递到ssis包,c#,asp.net,ssis,C#,Asp.net,Ssis,我正在尝试使用ASP.NET构建一个执行SSIS包的应用程序,因此我希望将变量从应用程序传递到此包。 我想知道SSIS中是否缺少一些配置 var a = demande_provision_creance.Année; var t = demande_provision_creance.Trimestre; var e = demande_provision_creance.Etat; var i = demande_provision_creance.ID; db.SaveChanges(

我正在尝试使用ASP.NET构建一个执行SSIS包的应用程序,因此我希望将变量从应用程序传递到此包。 我想知道SSIS中是否缺少一些配置

var a = demande_provision_creance.Année;
var t = demande_provision_creance.Trimestre;
var e = demande_provision_creance.Etat;
var i = demande_provision_creance.ID;


db.SaveChanges();


try
{


    String pkgLocation = @"C:\PROVISION_CREANCES.dtsx";

    Application app = new Application();

    Package ssisPackage = null;

    ssisPackage = app.LoadPackage(pkgLocation, null);

    Microsoft.SqlServer.Dts.Runtime.Variables vars = ssisPackage.Variables;

    vars["User::Annee"].Value = a;
    vars["User::trimestre"].Value = t;
    vars["User::etat"].Value = e;
    vars["User::id_demande"].Value = i;


    Microsoft.SqlServer.Dts.Runtime.DTSExecResult results = ssisPackage.Execute(null, vars, null, null, null);


    if (results == Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Failure)
    {
        foreach (Microsoft.SqlServer.Dts.Runtime.DtsError local_DtsError in ssisPackage.Errors)
        {
            x += string.Concat("Package Execution results: {0}", local_DtsError.Description.ToString());
        }
    }

}
catch (DtsException ex)
{
    // Exception = ex.Message;
}
return Json(x, JsonRequestBehavior.AllowGet);

您就快到了,不需要在变量名称旁边提供变量范围:

vars["Annee"].Value = a;
vars["trimestre"].Value = t;
vars["etat"].Value = e;
vars["id_demande"].Value = i;
提供作用域是在脚本组件或脚本任务中使用的,但不是在以编程方式处理包时使用的