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を介してレコードをバインドすることはお勧めできません。BindingSourceDevExpress グリッドコントロールを使用しているため、サーバー データ バインディング モード(同期または非同期) を使用することをお勧めします。この概念の詳細については、記事「通常のバインディング モードと通常のサーバー モードとインスタント フィードバック モード」を参照してください。
サーバー モードを開始するには、次のハウツー記事を使用してください。 サーバー モード: 「LINQ to SQL クラス」を使用したデータ ソースへのバインド

于 2013-03-20T16:15:34.007 に答える