我有一个包含 1000 行的数据表,现在我想将此数据表中的第一个索引和最后一个索引之间的行范围添加到我的数据网格视图中。我该如何做到这一点?
数据表还包含有关我始终希望在 datagridview 中维护的列的信息。
PS:First Index 和 Last Index 是一些整数变量。这是在使用 .net 平台的 c# 中。
我有一个包含 1000 行的数据表,现在我想将此数据表中的第一个索引和最后一个索引之间的行范围添加到我的数据网格视图中。我该如何做到这一点?
数据表还包含有关我始终希望在 datagridview 中维护的列的信息。
PS:First Index 和 Last Index 是一些整数变量。这是在使用 .net 平台的 c# 中。
假设您想使用第 100 到 200 行作为数据源,您可以使用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+ "#");