【发布时间】:2013-03-11 16:04:25
【问题描述】:
您好,我遇到了一些麻烦,我在 SSIS 中有一个非常简单的脚本任务。这是我第一次使用 LINQ
string iFileName = (string)(Dts.Variables["iFileName"].Value);
string oFileName = (string)(Dts.Variables["oFileName"].Value);
try
{
// string[] lines = File.ReadAllLines(@"\\Fcwdsqlanl01\e$\SQL_OLAP\Log\Billing_2.log");
IEnumerable<string> stringsOut = File.ReadAllLines(iFileName)
.Where(line => (char.IsDigit(line, 0)) && line.Contains(","))
.Select(line => line);
File.WriteAllLines(oFileName, stringsOut);
}
catch (Exception e)
{
MessageBox.Show(e.Message);
}
这是我遇到的错误
'System.IO.File.WriteAllLines(string, string[])' 有一些无效的参数。
我不明白为什么它的参数有问题,因为我使用它的方式与 ReadAllLines 相同。我已经检查过了,stringsOut 变量保存了我想要的字符串数组。我意识到有一些方法可以不使用 WriteAllLines 来做到这一点,但我想这样做,假设我缺少一些简单的东西。
【问题讨论】:
-
您可能需要使用采用
String[]的重载(只需在最后调用ToArray()),因为IEnumerable<string>overload 是.NET 4 中的新值。您使用的是什么框架版本? -
我永远无法理解为什么人们使用 SSIS 并在脚本任务中完成所有工作
-
你的
Select方法没有做任何事情;它应该被删除。 -
@msmucker,如果没有脚本组件,您将如何执行此特定任务?你会使用内置的“在发送到连接管理器之前运行文件并格式化”组件吗?
-
感谢我会做的服务