将数据库表与c#中的数据表进行比较的最佳方法

时间:2014-07-23 23:23:26

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

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

我猜测数据库方法是性能的更好选择,但我一直试图找出将C#数据表传递到存储过程的最佳(性能方面)方法。它可以是XML,使用迭代加载临时表,或类似的东西。我试图在不迭代两个表的情况下这样做。

类似的东西:

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

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

事实:

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

1 个答案:

答案 0 :(得分:0)

最简单快捷的方式:

将来自excel行逗号的值分开并查询数据库f.e。

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