在Integration Services中设置包用户变量值,然后运行包C#LoadFromSqlServer

本文关键字:变量值 然后 C#LoadFromSqlServer 运行 用户 Services 设置 包用户 Integration | 更新日期: 2023-09-27 18:29:01

我有导入Integration Services的包。我把它们都设置好了,并把它们映射到运行中。我的问题是,我试图以编程方式将值传递给包中的用户变量。

我必须填充Start DateEnd Date,但我找不到任何关于我正在做的事情的信息。有人能帮忙吗?

我是LoadFromSqlServer的新手,不确定是否还有其他信息需要你帮助,但如果你问我,我会非常乐意编辑我的问题并添加需要的内容。

任何帮助都将不胜感激。谢谢

---编辑---

这是我使用这段代码时得到的错误:

Application app = new Application();            
Package package = new Package();
Variables variables = package.Variables;
package = app.LoadFromSqlServer("''File''Path''" + paramName, ".", "UserName"
, "Password", null);
variables["User::START_DATETIME"].Value = startDate;
variables["User::END_DATETIME"].Value = endDate;
DTSExecResult result = package.Execute();

错误如下:

Additional information: The variable cannot be found. This occurs when an attempt 
is made to retrieve a variable from the Variables collection on a container during 
execution of the package, and the variable is not there. The variable name may have 
changed or the variable is not being created.

在Integration Services中设置包用户变量值,然后运行包C#LoadFromSqlServer

实际上我能够找到问题所在。这相当愚蠢,但仍然是一个解决方案。

在我的代码中,我使用

Variables variables = package.Variables;

在我将一个包实际附加到我的package变量之前。

在包被附加到我的变量后,切换我的代码来调用变量是有效的。新代码如下:

Application app = new Application();            
Package package = new Package();
package = app.LoadFromSqlServer("''File''Path''" + paramName, ".", "UserName"
, "Password", null);
Variables variables = package.Variables;
variables["START_DATETIME"].Value = startDate;
variables["END_DATETIME"].Value = endDate;
DTSExecResult result = package.Execute();

您可以通过以下方式将变量传递到SSIS包中:

Package package = null;
//Load the SSIS Package which will be executed
package.Variables["User::StartDate"].Value = '2014-01-01';
package.Variables["User::EndDate"].Value = '2014-01-10';

编辑1.检查是否没有打字错误:

if (package .Variables.Contains["StartDate"])
{
...
}
  1. 请确保SSIS服务正在运行
  2. 您也可以尝试使用点胶机类:

    package.VariableDispenser.LockOneForWrite("StartDate",variables)包裹Variables["User::StartDate"].Value='2014-01-01';变量。解锁()