【问题标题】:best approach to compare database table with datatable in c#在c#中比较数据库表和数据表的最佳方法
【发布时间】:2014-07-23 23:23:26
【问题描述】:

我从 Excel 文件中加载了一些数据。它有一个键值,我想从数据库表中这些键的一系列可能值中验证它。据我所知,根据性能,我有两种选择:在c#方法中比较或在数据库服务器上的存储过程中比较。

我猜数据库方法是性能更好的选择,但我一直在努力找出将 C# 数据表传递到存储过程的最佳(性能方面)方法。它可以是 XML、通过迭代加载临时表或类似的东西。我正在尝试在不迭代两个表的情况下执行此操作。

类似:

select postal_code
from postaldata
where not exists (
   select ClientPostalCode
   from PassedXML
)

我只想知道我是否指向正确的方向,或者是否有人有更好的方向。

事实:

  • 数据表:来自客户的带有邮政编码的 Excel 表格(仅有意义的列)
  • 数据库表:所有邮政编码
  • 尝试实现:数据库表中不存在的Excel表中所有代码列表
  • SQL Server 2012
  • .NET 4.5

【问题讨论】:

    标签: c# sql sql-server excel sql-server-2012


    【解决方案1】:

    最简单快捷的方法:

    连接excel行逗号分隔的值并查询数据库f.e.

    Select postal_code from postaldata where postal_code not in (
        excelvalue1, excelvalue2, excelvalue3, ...
      )
    

    【讨论】:

    • 感谢您的回复。我考虑了一下,但我担心大数据集(可能达到 150k 代码),假设 17 字符长,我将需要一个 2500000 长的字符串数据类型,我怀疑这将是一个问题......跨度>
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-28
    • 2012-12-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多