何千もの行を含むデータテーブルがあります。このデータテーブルの最初の最初のインデックスと最後のインデックスの間の行の範囲をデータグリッドビューに追加したいと考えています。どうすればこれを達成できますか?
データテーブルには、データグリッドビューで常に維持したい列に関する情報も含まれています。
PS: 最初のインデックスと最後のインデックスは整数変数です。これは、.net プラットフォームを使用した c# です。
何千もの行を含むデータテーブルがあります。このデータテーブルの最初の最初のインデックスと最後のインデックスの間の行の範囲をデータグリッドビューに追加したいと考えています。どうすればこれを達成できますか?
データテーブルには、データグリッドビューで常に維持したい列に関する情報も含まれています。
PS: 最初のインデックスと最後のインデックスは整数変数です。これは、.net プラットフォームを使用した c# です。
行 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;
データにフィルターを使用して、に表示される結果を制限できますDataGridView
。次のようなことをします
DataTable tmpDt = GetDataTable();
BindingSource source2 = new BindingSource();
source2.DataSource = tmpDt;
source2.Filter = "columnValue < 100 AND columnValue > 200";
dataGridView2.DataSource = source2;
このアプローチの利点は、フィルタによって基になるデータが破壊されないことです。Filter
に表示されるデータを更新できますDataGridView
。
これが役立つことを願っています。
グーグルはすぐに使える記事を私に与えました、
方法: Windows フォーム DataGridView コントロールにデータをバインドする - http://msdn.microsoft.com/en-us/library/fbk67b6z.aspx
http://www.switchonthecode.com/tutorials/csharp-tutorial-binding-a-datagridview-to-a-database
このようにしてみてください
DataRow[] rw = myDataTable.Select("#" + firstindex+ "# >= FirstIndexCol
AND SecondIndexCol <= #" + SecondIndex+ "#");