2009-10-30 32 views
1

希望很简单,但无法找到任何此类选项。移至DataTable中的特定记录

我有一个数据表 - 有说... 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

你试过:

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

都能跟得上......这回来为 错误只有分配,调用,增量,减量和新的对象表达式可以用作语句 – DRapp 2009-10-31 23:01:41