0

何千もの行を含むデータテーブルがあります。このデータテーブルの最初の最初のインデックスと最後のインデックスの間の行の範囲をデータグリッドビューに追加したいと考えています。どうすればこれを達成できますか?

データテーブルには、データグリッドビューで常に維持したい列に関する情報も含まれています。

PS: 最初のインデックスと最後のインデックスは整数変数です。これは、.net プラットフォームを使用した c# です。

4

4 に答える 4

1

行 100 から 200 を DataSource として使用すると仮定すると、以下を使用できますEnumerable.Skip/Take

datagridView1.DataSource = table.AsEnumerable()
                                .Skip(100)
                                .Take(100)
                                .CopyToDatatable();

startIndex から endIndex までEnumerable.Where:

datagridView1.DataSource =  table.AsEnumerable()
                                 .Where((r, i) => i >= startIndex && i <= endIndex)
                                 .CopyToDatatable();

追加することを忘れないでくださいusing System.Linq;

于 2012-11-09T09:30:04.970 に答える
1

データにフィルターを使用して、に表示される結果を制限できますDataGridView。次のようなことをします

DataTable tmpDt = GetDataTable();
BindingSource source2 = new BindingSource();
source2.DataSource = tmpDt;
source2.Filter = "columnValue < 100 AND columnValue > 200";
dataGridView2.DataSource = source2;

このアプローチの利点は、フィルタによって基になるデータが破壊されないことです。Filterに表示されるデータを更新できますDataGridView

これが役立つことを願っています。

于 2012-11-09T09:33:57.983 に答える
0

グーグルはすぐに使える記事を私に与えました、

方法: Windows フォーム DataGridView コントロールにデータをバインドする - http://msdn.microsoft.com/en-us/library/fbk67b6z.aspx

http://www.switchonthecode.com/tutorials/csharp-tutorial-binding-a-datagridview-to-a-database

于 2012-11-09T09:30:42.997 に答える
0

このようにしてみてください

DataRow[] rw = myDataTable.Select("#" + firstindex+ "# >= FirstIndexCol 
                                     AND SecondIndexCol <= #" + SecondIndex+ "#");
于 2012-11-09T09:34:11.463 に答える