【问题标题】:Delete data or CSV file using SSIS or C#使用 SSIS 或 C# 删除数据或 CSV 文件
【发布时间】:2013-01-31 17:36:09
【问题描述】:

我正在尝试:

  1. 使用SSISC#CSV 文件中删除数据。如果我不能删除数据,那么,
  2. 至少使用SSISC#删除CSV文件。

如果可能的话,我想知道如何做#1。

【问题讨论】:

  • 要重申愿望1,您想知道如何Delete rows n-m
  • 与其询问是否可行并索取代码,也许您可​​以向我们展示您尝试为自己做的事情,但遇到了麻烦。
  • @billinkc:你是对的。尝试查看如何使用 ssis 或 C# 删除 csv 文件中的行。

标签: c# ssis


【解决方案1】:

如果您想使用 C# 删除 CSV 文件中的所有行...请按照以下代码...

System.IO.File.WriteAllText(@"D:/filename.csv",string.Empty);

它删除所有行并将文件保持为空...

【讨论】:

  • 哎呀,我想我自己找到了解决方案,平面文件连接中有覆盖选项,所以每次我猜都​​要处理覆盖。看起来它正在工作。
【解决方案2】:

C#

要从平面文件中删除行,您需要读取该文件并将其写入另一个文件,不包括您不想要的任何行。

看了这两篇文章,很短

可能有更聪明的方法可以压缩到特定位置。如果它是一个固定宽度的文件,那么您可以计算去哪里以及要剥离多少,但由于它是一个 CSV,所以您会对此感到困惑。

SSIS

我假设在 SQL Server 2012 不能很好地处理这些行之前,删除这些行的愿望是作为 SSIS 的标题或尾部。在这种情况下,您将需要建立 2 个连接管理器。将在单个列中读取整个文件。第二个将是您格式良好的文件输出。同样的工作流程也会发生在这里。

在数据流任务中,添加 Flat File Source 并将其配置为使用 1 列连接管理器。添加Derived Column componentScript Component 以使您能够确定此行是否为保持器。添加 Conditional Split 并仅将好的行分流到使用强类型定义的 Flat File Destination

然后在您的下一个数据流中,使用连接到强类型定义的Flat File Source,并且 bob 是您的叔叔。

【讨论】:

    【解决方案3】:
    using System.IO;     
    string path = @"c:\temp\a.txt";
    
    if (File.Exists(path))
    {
       File.Delete(path);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-06-21
      • 1970-01-01
      • 2021-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-16
      相关资源
      最近更新 更多