我正在从 SQL Server 数据库中读取大量数据(大约 2.000.000 个条目),我想以 winforms 将其打印给最终用户GridView
。
第一种方法
第一个想法是使用SQLDataReader
它通常不会花费太多时间来读取包含大约 200.000 个条目的表。但是在上述情况下使用了太多的内存(和时间!)。
实际解决方案
实际使用的解决方案是通过LINQ
( dbml
file) 从数据库读取,这很好,因为它将组件直接插入数据库服务器。它即时加载数据,这真的很棒。
问题
问题是:
- 当我将网格视图插入 时
FeedBack Source
,在我看来,我无法通过代码读取网格的列。
这是为了将我插入LookUpSearchEdit
源:
slueTest.Properties.DataSource = lifsTest; // This is the LinqInstantFeedbackSource
gvTest.PopulateColumns();
当我做 :
gv.Columns["FirstColumn"] // "FirstColumn" is the name of the field in the LINQ Class (and in the DB)
它引发了一个例外......
中的数据
FeedBackSource
根本无法访问...)我失去了所有的功能,
LookUpSearchEdit
我认为这是因为数据是即时读取的(排序、搜索等)。
问题
我这样做对吗?或者有没有更好的方法可以在不消耗大量内存/时间的情况下从数据库打印大量数据?