Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.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#_Sql Server_Ssis_Etl_Ssis 2008 - Fatal编程技术网

C# 脚本任务上的SSIS读取平面文件连接

C# 脚本任务上的SSIS读取平面文件连接,c#,sql-server,ssis,etl,ssis-2008,C#,Sql Server,Ssis,Etl,Ssis 2008,我正在开发一个2008 SSIS,在这个SSIS中,我需要读取一个平面文件,这样我就可以访问它的内容(有3个目录路径),这样我就可以将这3个路径存储到变量中 根据我正在处理的实例(dev、qa、production),平面文件将位于3个不同的服务器中,因此我不能只将路径写入变量,因为每次需要在不同的实例中部署解决方案时,我都必须重写该值 我过去尝试过使用Directory.GetCurrentDirectory()读取平面文件,但我无法调试,在VS2008上使用F5/run包也不起作用(我听说它

我正在开发一个2008 SSIS,在这个SSIS中,我需要读取一个平面文件,这样我就可以访问它的内容(有3个目录路径),这样我就可以将这3个路径存储到变量中

根据我正在处理的实例(dev、qa、production),平面文件将位于3个不同的服务器中,因此我不能只将路径写入变量,因为每次需要在不同的实例中部署解决方案时,我都必须重写该值

我过去尝试过使用Directory.GetCurrentDirectory()读取平面文件,但我无法调试,在VS2008上使用F5/run包也不起作用(我听说它在VS上不起作用,但一旦部署了包,它就可以正常工作,但我没有办法证明它,只能尝试)

因此,我发现,如果我可以读取平面文件连接上保存的路径并将其保存在字符串变量中,那么一旦部署包,我就可以修改.config文件中的连接字符串值,并像普通平面文件一样读取其内容

我的问题是,我不知道如何读取连接字符串值,并且我在网上找不到任何指向正确方向的东西


提前谢谢。

您可能需要类似C#Script任务的任务。您可以在此处动态修改连接字符串。在脚本中,您需要修改(如果我没有记错的话)
Dts.Connections。[“YourConnection”].ConnectionString
要从脚本任务访问连接管理器信息,您可以使用
Dts.Connections
属性,只需声明一个字符串变量,然后读取ConnectionString属性:

string cs;
cs = Dts.Connections["myFlatFileConnection"].AcquireConnection(Dts.Transaction);
参考资料:

据此:

连接管理器提供对包中已配置的数据源的访问。了解更多信息。 脚本任务可以通过Dts对象的Connections属性访问这些连接管理器。Connections集合中的每个连接管理器都存储有关如何连接到基础数据源的信息


由于似乎什么都不起作用,我最终做了以下几件事:

  • 在数据库的参数表中插入所需的值
  • 生成了一个执行SQL任务
  • 将该任务的结果分配给变量
花了我一整天的时间,但我终于得到了


我按照线程查找参考资料。

我试着这样做,但没有成功。谢谢anyways@Rambo3我知道这篇文章很旧,但我修复了代码,因为它没有像你提到的那样工作。祝你好运