Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/315.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中具有执行bat文件的多输入和多输出_C#_Ssis - Fatal编程技术网

C# ssis中具有执行bat文件的多输入和多输出

C# ssis中具有执行bat文件的多输入和多输出,c#,ssis,C#,Ssis,我有一个问题如下,请尝试给我一些提示或帮助 我正在ssis中实现一个vb代码以减少时间。所以我需要做和vb项目一样的事情 它从用户处获取输入,并根据文件名检查文件名。它从其他两个第二类文件中选择另一个文件作为输入 然后它执行一些操作并提供输出 我有3种zip文件作为第一种类型输入 我必须解压这些文件 问题:所以问题是如何解压文件。以及如何处理多重输入和输出的可能性。是否可以在运行时提供sorce文件。。? 如何使用usning.bat文件执行此操作 解决方案:我假设以下解决方案 通过脚本管理器(

我有一个问题如下,请尝试给我一些提示或帮助

  • 我正在ssis中实现一个vb代码以减少时间。所以我需要做和vb项目一样的事情
  • 它从用户处获取输入,并根据文件名检查文件名。它从其他两个第二类文件中选择另一个文件作为输入
  • 然后它执行一些操作并提供输出
  • 我有3种zip文件作为第一种类型输入
  • 我必须解压这些文件
  • 问题:所以问题是如何解压文件。以及如何处理多重输入和输出的可能性。是否可以在运行时提供sorce文件。。? 如何使用usning.bat文件执行此操作

    解决方案:我假设以下解决方案

    通过脚本管理器(作为源的脚本组件)获取输入。解压缩第一个文件并读取该文件,然后将输出保存在输出列中

    从平面文件管理器获取第二个文件,但这里我有问题,我需要知道zip文件的名称,因此我必须选择第二个文件。那么如何在运行时选择平面文件连接管理器的文件名呢

    解决了一点: 现在我在数据流任务之前使用脚本任务。我从用户那里获取文件名,然后相应地执行相应的数据流。但是我在文件浏览方面有问题 OpenFileDialog openPathDial=新建OpenFileDialog(); 我在以下方面有错误。 =>DialogResult diloResFile=openPathDial.ShowDialog()

    错误:=错误:System.Reflection.TargetInvocationException:调用的目标已引发异常。-->System.Threading.ThreadStateException:在进行OLE调用之前,必须将当前线程设置为单线程单元(STA)模式。确保主函数上标记了STAThreadAttribute。只有将调试器附加到进程时,才会引发此异常

    谢谢你 我知道这太多了,但你的暗示可以解决这个问题


    Nitesh

    因此我将问题标准化如下

  • 我在控制流中使用脚本Tast,并要求使用C#中的表单输入文件名。我在浏览文件时得到文件名

  • 然后解压文件并根据文件名检查文件名,我设置了3个变量,它们是globel

  • 根据变量,我完成了3个数据流任务。对于上述指定的问题,它工作得很好

  • 它适用于不同的数据流任务

  • 但是,当我使用平面文件源名称作为动态(使用表达式)时,我有另一个问题,它给了我关于无法打开文件的错误

    错误“[Flat File Source[1]]错误:无法打开数据文件“C:\Documents and Settings\XQN4P\Desktop\Inputs\Intraday\OPTION\u DAILY\u Intraday\u ASIA20140212.csv”。 "

    注意:此文件由用户解压输入的文件生成


    谢谢

    SSIS并不是真正为用户输入而设计的。例如,要以交互方式让用户输入文件名,您必须在其计算机上安装SSI和visual studio,然后它必须执行该工作,包括将数据从文件移动到计算机,然后移动到数据库。这是个坏主意。您将有多少用户运行此进程?你有什么产出?它只是将所选文件加载到数据库吗?你可以安装第三方解压软件(即7-zip)吗?你需要进一步解释第2步和第3步,最好是举例说明。嗨,我有3种zip中的第一种文件类型。所以我得到第一种类型的文件并解压缩它。根据该文件名,我将选择2输入文件。这就是我想作为输入的想法。要解压缩文件,我可以使用脚本组件。但我对第一道工序感到困惑。如何获得第二次输入。。?我听说了.bat文件处理。谢谢你的帮助。。!还有一个问题。。?如果我使用脚本任务和脚本任务的分支会怎么样…?我想@ElectricLlama你只是我在每个帖子上都会问问题。。你也问了我以前的问题,但之后你就再也不在了。。。是这样吗。。?谢谢我问问题有很多原因:1。为了测试海报是否会不厌其烦地留下来接受我的答案2。帮助海报思考他们的问题,并可能解决他们自己的问题。3.确定我心目中的解决方案是否值得解决。4.为了澄清问题。实际上警告是“[平面文件源[1]]警告:该进程无法访问该文件,因为它正被另一个进程使用。”。当我看到文件为空时,我猜解压文件的脚本任务没有正确解压,并且/或者仍然处于活动状态。说真的,你应该优化你的VB代码,而不是在SSIS中构建它。是的,问题在于解压。。不,实际上这是一个研究项目。我的经理想知道时差。如果一切顺利的话,我会有很多事情要做。这是一家大银行……最后让我说:1。我见过许多写得不好的数据传输VB应用程序,它们运行得非常慢,如果写得正确,运行得会更快。2.VB应用程序是进行用户交互的地方,而不是SSI。是的,我同意你的看法。但是我没有太多的用户交互。我刚刚得到了菲拉纳姆和类型。。。我听说SSI对于大的转换速度更快。。