0

我想从包含 2M 条记录的 SQL Server 表中检索数据。我正在使用 Devexpress GridControl 并尝试了这样的简单代码:

   DataTable dt = new DataTable();
   String sqlString = "select * from LARGETABLE left join TABLEB on LARGETABLE.ID=TABLEB.PARENTID";
   SqlDataAdapter da = new SqlDataAdapter(sqlString, sqlConnection);
   da.Fill(dt);
   bindingSource1.DataSource = dt;

...

   gridControl1.DataSource = bindingSource1

执行 da.Fill(dt) 行时,一段时间后会引发OutOfMemoryException错误。

Microsoft Server Studio 确实可以毫无问题地加载表格,并在网格中显示所有 2M+ 行。是否可以在c#中构建这样的数据浏览器并加载大型数据集而不会耗尽内存?

4

1 回答 1

1

我相信通过和'DataTable'绑定2M记录BindingSource不是一个好主意。由于您使用的是 DevExpress 网格控件,我建议您使用他们的服务器数据绑定模式(同步或异步)。您可以在“常规绑定模式与常规服务器模式与即时反馈模式”一文中阅读有关此概念的更多信息。
要从服务器模式开始,请使用以下方法文章: 服务器模式:使用“LINQ to SQL 类”绑定到数据源

于 2013-03-20T16:15:34.007 回答