将值传递给SSIS从c#连接字符串

时间:2011-04-14 21:45:37

标签: c# sql-server-2008 ssis

VS 2008 / SQL 2008

我正在将.csv文件导入SQL表。

我想从C#Code动态传递源文件和目标连接字符串。

由于某些原因,此代码运行良好但包没有执行!!!!我应该如何动态地将连接字符串从C#代码传递给SSIS包!!

string strSourceConn = Server.MapPath(filePlacedOrder.Value);
string strDestConn = System.Configuration.ConfigurationManager.AppSettings["SDB"];
string pkgLocation = Server.MapPath("Package.dtsx");

Package pkg;
Microsoft.SqlServer.Dts.Runtime.Application app;
DTSExecResult pkgResults;

app = new Microsoft.SqlServer.Dts.Runtime.Application();
pkg = app.LoadPackage(pkgLocation, null);

pkg.Variables["sConn"].Value = strSourceConn;
pkg.Variables["dConn"].Value = strDestConn;

pkgResults = pkg.Execute();

1 个答案:

答案 0 :(得分:1)

动态更改连接字符串的最佳方法是从包中检索所需的连接,然后更改其连接字符串。这与使用连接信息设置变量不同。在这种情况下,您可以使用:

pkg.Connections["sConn"].ConnectionString = strSourceConn;
pkg.Connection["dConn"].ConnectionString = strDestConn;

sConndConn是包中连接的名称。