C# 存储整个表的数据集并在副本上执行查询,然后使用查询结果更新GridView

C# 存储整个表的数据集并在副本上执行查询,然后使用查询结果更新GridView,c#,asp.net,C#,Asp.net,我是n层企业开发的新手。我刚刚得到了一个相当不错的教程,只是在阅读时抛出了“可能已经有你答案的问题”,但没有找到我想要的。我正在做一个基因学网站,从第一个上船的人开始,你点击他的名字,他的所有孩子就会出现在表格中,然后点击他的一个有孩子的孩子,表格就会出现他的孩子等等。每个记录都有一个ID和一个ParentID。当您选择任何给定的人时,该ID将被存储,然后用于搜索与ParentID匹配的所有记录,ParentID返回所有子项。数据永远不会更改(至少用户不会更改),因此我只想进行一次数据库访问,将

我是n层企业开发的新手。我刚刚得到了一个相当不错的教程,只是在阅读时抛出了“可能已经有你答案的问题”,但没有找到我想要的。我正在做一个基因学网站,从第一个上船的人开始,你点击他的名字,他的所有孩子就会出现在表格中,然后点击他的一个有孩子的孩子,表格就会出现他的孩子等等。每个记录都有一个ID和一个ParentID。当您选择任何给定的人时,该ID将被存储,然后用于搜索与ParentID匹配的所有记录,ParentID返回所有子项。数据永远不会更改(至少用户不会更改),因此我只想进行一次数据库访问,将所有字段填充到一个数据表中,然后每次对其进行重新查询,以获得要显示的记录。在DAL中,我将所有记录放入一个列表,在ObjectDataSource中,填充GridView的函数只返回所有条目的列表。我要做的是重新查询datatable,用新的查询填充列表并显示在GridView中。我的代码在3个文件中

(我无法获取背景标记以在此窗口中显示我的代码)我所需要的只是找出如何对现有DataTable进行新查询并将其复制到新DataTable。希望这能很好地解释这一点。
[编辑:每次只从数据库执行一个新的查询会更容易,存储在内存中的资源密集度也会更低(将来如果数据库太大),但我只想知道我是否可以这样做-也就是说,从整个表的一个副本开始工作]任何想法…

您的数据本质上代表一个树结构。 显示它的网格可能不是我的首选

可以使用复杂的SP在一个查询中查询所有数据

但你已经在考虑性能了。在构思设计时,这始终是一件好事。但创造一些东西,改进它,然后才开始优化似乎是更好的选择


由于关系数据库在层次数据上不是很好,考虑NoSQL(图形)数据库。正如您提到的,数据库几乎没有写操作,nosql在这里大放异彩。

设计禁止从.net站点提供.cs文件。因此,链接中的代码演示无法阅读…我刚刚访问了维基百科并简要阅读了有关nosql的内容。我的托管服务上只有MSSQL,我还将有另一个表或2,其中列出了所有相关文档和图片,以显示图片,并显示任何选定条目的个人简历。我考虑使用和XML文件,这可能也是层次结构类型db的一种方法。