繁体   English   中英

SSIS 脚本任务获取 csv 文件的行数

[英]SSIS Script Task get row count of csv files

我正在使用 VS 2012\SQL SSIS。 如何检索 csv 文件中记录的行数并将它们分配给变量 (RowCount) 以供稍后在该过程中使用? 我还需要从计数中排除 1,因为这将是 header 列。

但是,我不能只使用数据流任务、OLE 源然后是行数,因为我不知道文件名(或 csv 的标题)。 我所知道的是至少会有 header 行。 到目前为止,我有一个 FOR EACH LOOP 容器,它查看特定文件夹,然后将文件名分配给变量“FileNameFound”。 如何配置脚本任务,然后将 RowCount 分配给变量“RowCount”?

在此处输入图像描述

到目前为止,在我的脚本任务(C#)中,我已经尝试了以下内容,只是为了使用消息框进行测试

public void main()
{
        string strPath = Dts.Variables["FileNameFound"].Value.ToString();
        string[] strArr = File.ReadAllLines(strPath);
        //MessageBox.Show(strArr[0]);
        MessageBox.Show("Total Records " + strArr.Length.ToString());

        Dts.TaskResult = (int)ScriptResults.Success;
}

如何将计数的记录分配给 SSIS 变量“RowCount”?

如何在脚本任务中为 SSIS 变量赋值?

假设您在脚本任务配置页面中有一个名为@[User::RowCount] 的变量,它有一个位置来标识变量的只读集合以及读/写变量集合。 将此添加到 ReadWrite 集合。

在您的实际代码中,您将计算的行数分配给 SSIS 变量的.Value属性。

Dts.Variables["RowCount"].Value = strArr.Length -1;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM