【问题标题】:Importing Excel file but the number of columns keep changing [closed]导入Excel文件但列数不断变化[关闭]
【发布时间】:2016-04-04 16:38:52
【问题描述】:

我的客户每个月都会向我发送一个文件,我通过 C# 将其导入 SQL。列数根据他的要求而变化。列基本上是帐户号。他在其中收到钱,所以如果他在任何帐户中没有收到钱,他会删除这些列。

所以我尝试以转置方式输入数据库,例如

Excel 文件 名称 PAN Acc1 Acc2 Acc3 Acc4

我在 SQL 中导入 ROW1 - 名称 PAN Acc1 Amt ROW2 - 名称 PAN Acc2 Amt ROW3 - 名称 PAN Acc3 Amt

但是当我执行一个 sql 查询很多个月时,这会花费太多时间。请帮忙

【问题讨论】:

  • 您执行的 SQL 查询是什么?也许我们可以提高效率。
  • 您是通过 SSIS 包来执行此操作的吗?

标签: c# sql sql-server excel


【解决方案1】:

我过去发现,在处理可变列时,出于多种原因,您可能会陷入困境。因此,例如,您不能在每次出现新帐户时都将列附加到表中,因此您必须使用行条目而不是列条目等。在连接数据等方面还会遇到其他问题。

我过去在 SQL Server 中使用过的一个好方法是将数据用作 SQL Server DB 中的 XML 类型,并创建使用 Cross Apply 处理数据连接的存储过程。您还可以对数据使用 XML 模式验证。

所以,也许这是你的一个选择。

希望对您有所帮助。

【讨论】:

    【解决方案2】:

    如果您不处理任何其他逻辑,而不仅仅是“将数据导入 SQL 表”,使用 C# 可能不是最有效的解决方案,因为它添加了不必要的额外层。我个人更喜欢BCP,因为它是一个内置命令,您可以安排一个 SQL 作业每月运行一次。 Powershell 虽然非常好,但您需要安装它,它非常简单且轻量级。最后 SSIS 也可以工作,但你需要有 Microsoft SQL Server - 开发版和企业版。如果你愿意,我可以通过 BCPPowershell 帮助你。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-10
      • 2015-10-11
      • 1970-01-01
      • 2011-07-21
      • 1970-01-01
      • 2014-10-04
      • 2017-01-29
      • 2014-04-10
      相关资源
      最近更新 更多