在 C# 中将 DataRowView[] 绑定到 DataGridView 的最有效方法
Most efficient way to bind DataRowView[] to DataGridView in C#
我在 DataTable 上有一个 DataView(带有排序列,没有 RowFilter)。当我调用 DataView.FindRows(SortCols[])
时 returns DataRowView[]
.
将此数组绑定到 DataGridView 的最有效方法(就速度而言)是什么?
我的 google 搜索只返回了几个相关结果,他们似乎建议遍历数组并将数据添加到新的 DataTable,然后可以绑定它。
我希望我的 DataRowView[] 至少包含几百个项目,所以除非没有更好的方法,否则我不想采用迭代方式。
如有任何建议,我们将不胜感激。非常感谢。
经过反复试验,我最终得出了这个解决方案。我确实遍历数组,但可以避免对列进行二级迭代:
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();
目前有效。如果有人知道更直接的方法,请告诉我。非常感谢。
我在 DataTable 上有一个 DataView(带有排序列,没有 RowFilter)。当我调用 DataView.FindRows(SortCols[])
时 returns DataRowView[]
.
将此数组绑定到 DataGridView 的最有效方法(就速度而言)是什么?
我的 google 搜索只返回了几个相关结果,他们似乎建议遍历数组并将数据添加到新的 DataTable,然后可以绑定它。
我希望我的 DataRowView[] 至少包含几百个项目,所以除非没有更好的方法,否则我不想采用迭代方式。
如有任何建议,我们将不胜感激。非常感谢。
经过反复试验,我最终得出了这个解决方案。我确实遍历数组,但可以避免对列进行二级迭代:
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();
目前有效。如果有人知道更直接的方法,请告诉我。非常感谢。