【问题标题】:How should I manage large DataTables?我应该如何管理大型数据表?
【发布时间】:2010-10-29 19:37:48
【问题描述】:

出于没有多大意义的原因(阅读:不是我的决定)我需要在 DataTable 中保留大量行,大约 90,000 行,我没有使用数据库的选项。

我需要能够有效地搜索 DataTable 以找到符合某些基本条件的行。例如,我可能正在查看两个特定列中值为 2 的行。

最好的方法是什么?

编辑:请查看https://chat.stackoverflow.com/transcript/message/62648#62648了解更多详情;在我处理完此问题后,我将尝试在此处总结聊天中的额外细节,并提供我的解决方案。

【问题讨论】:

  • 您还有哪些其他限制?例如.NET 2.0?你可以使用 LINQ 吗?
  • 您是在问如何持久化数据(Access、Excel、Flat file)还是如何高效地查询数据?您是要在每次应用程序运行时都构建此 DataTable,还是需要将其保存在某个地方?
  • 可能是你的记忆力有问题,但是做你想做的事,如果有问题就说吧。
  • 对于那些关注主场比赛的人(仅限静态 SO),您可能想查看在聊天中讨论过的成绩单(可能会让事情更容易咀嚼?chat.stackoverflow.com/transcript/message/62648#62648)所以它沸腾了直到没有 LINQ,也没有有趣的东西。 DataTable 上的基本 .NET 4.0 数据处理
  • @Dismissile,每次我从平面文件中运行程序时,我都会构建 DataTable。

标签: c# .net search system.data.datatable


【解决方案1】:

您可以轻松使用DataTable.Select()

【讨论】:

  • 鉴于要求,这是唯一的方法。
  • 正确,但在每行处理多个选择条件时不是整个解决方案。
  • @Angelina - Select 方法支持多个过滤条件的 AND 语法。您可以在msdn.microsoft.com/en-us/library/… 阅读有关支持的完整语法集
【解决方案2】:

我最终使用的解决方案是使用 DataTable.Select(),填充一个新的 DataTable,然后使用相同的操作从优化的 DataTable 中选择我需要的行。

我认为这个解决方案很笨拙,但是由于我的日程安排也很紧,所以对问题的限制又有点不切实际。

【讨论】:

    猜你喜欢
    • 2021-11-15
    • 2018-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-31
    • 1970-01-01
    相关资源
    最近更新 更多