我正在尝试使用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);
答案 0 :(得分:0)
您快到了,不需要在变量名称旁边提供变量范围:
vars["Annee"].Value = a;
vars["trimestre"].Value = t;
vars["etat"].Value = e;
vars["id_demande"].Value = i;
提供范围是在脚本组件或脚本任务中使用的,但不是在以编程方式使用程序包时使用的。