移动到DataTable中的特定记录

时间:2009-10-30 17:50:55

标签: c# datatable brute-force

希望简单,但找不到任何此类选项。

我有一个数据表 - 说...其中有10行。表单上的某些字段分别按名称绑定到table.columns。

在另一个有网格的表格中,当我滚动网格时,细节字段会按预期刷新,因为网格会有一些魔法来触发DataTable记录更改事件。

在没有使用数据网格的情况下,如何指导表格转到特定行以在表单上进行加载/显示刷新...例如:

DataTable MyTable = new DataTable();

MyTable = GetResultsFromSQL();  // returns the 10 rows

MyTable.LoadTheDataForRow(3);
MyTable.LoadTheDataForRow(7);
MyTable.LoadTheDataForRow(2);

我知道我可以在表中使用foreach行,但需要明确使用,因为我不想遍历所有行,但需要特定的行。

我查看了LoadDataRow(),但这似乎是为了将数据推送回服务器。不是我想要的......我只想让表格中的“当前”行成为特定的一行...

由于

经过进一步的研究,我发现基于FORM的控件“BindingSource”(或衍生物)允许这样,例如网格。但是,显然,.Net引擎正在做一些事情,最终将一个给定的行“加载”到最终触发回“BindingSource”的东西...... DataTable有RowChanging和RowChanged事件,似乎是由OnRowChanging / OnRowChanged委托,但我们如何告诉数据表我们希望它作为活动的“行”。

表单控件可以为它们的绑定源执行此操作,但是真正发生的事情是触发这些OnRowChanging事件...我不想重新加载数据表,行等,只需更改内容被视为“活动”行,如网格,列表框,组合框等

1 个答案:

答案 0 :(得分:1)

你试过了吗?

MyDataTable.Rows[3];
MyDataTable.Rows[7];
MyDataTable.Rows[2];