【发布时间】:2013-11-23 23:48:53
【问题描述】:
我正在将大约 300 万行(ADODB 记录集)的大型结果集加载到数据表中。甚至将结果集加载到数据表中都需要很长时间。我想找到一种仅提取部分结果集然后将其加载到 DataTable 中的方法。或者,有没有办法直接读取记录集而不是将其加载到数据表中然后读取它?
这是我用来填充数据表的代码 -
OleDbDataAdapter oleDA = new OleDbDataAdapter();
DataTable dt = new DataTable();
oleDA.Fill(dt, myADODBRecordset);
【问题讨论】:
-
取决于...您是否有权访问数据库查询或存储过程?你想一次处理一批数据吗?
-
@StinkyTowel - 我可以访问数据库查询。但是,我不想编辑它。无论如何,我仍然渴望了解我的问题的所有可能解决方案。
-
您是否可以考虑使用 System.Data.OleDb.OleDbDataReader msdn.microsoft.com/en-us/library/… 这将只允许前向访问数据,但意味着您不必将整个数据集加载到内存中。
-
@SamPlusPlus - 我有一些问题。你能帮我回答吗? - 它能够从 ADODB 记录集中读取数据吗?有什么方法可以控制我一次可以读取的行数吗?是否涉及任何类型的磁盘缓存?谢谢。
-
@blasto 如何获取您的数据集?您可以使用数据阅读器而不是获取 ADODB 记录集吗?