我在DataTable上有一个DataView(带有排序列,没有RowFilter)。当我致电DataView.FindRows(SortCols[])
时,它会返回DataRowView[]
。
将此数组绑定到DataGridView的最有效方法(在速度方面)是什么?
我的谷歌搜索只返回了几个相关的结果,他们似乎建议迭代数组并将数据添加到新的DataTable,然后绑定。
我希望我的DataRowView []包含至少几百个项目,所以我不想采用迭代方式,除非没有更好的可用。
任何建议将不胜感激。非常感谢提前。
答案 0 :(得分:0)
经过一番试验和错误,我最终得到了这个解决方案。我会迭代数组,但可以避免对列进行二级迭代:
DataRowView[] drvFiltered = NFM.dtvFilterRothAppMsgs.FindRows(new string[] { sSenderCompId, sTargetCompId });
//-- Current solution
DataRow dr;
foreach (DataRowView drv in drvFiltered) {
dr = dtbFilteredAppMsgs.NewRow();
dr.ItemArray = drv.Row.ItemArray;
dtbFilteredAppMsgs.Rows.Add(dr);
}
dtbFilteredAppMsgs.AcceptChanges();
目前有效。如果有人知道更直接的方法,请告诉我。非常感谢。