如何限制数据表中的行数?
我生成一个 DataTable(从非 SQL 数据),然后使用 DataView 来过滤记录。
我想限制最终记录集中的记录数,但在生成数据表时无法做到这一点。
我已经采取从最终结果集中删除行的方法,按照:
DataView dataView = new DataView(dataTable);
dataView.RowFilter = String.Format("EventDate > '{0}'", DateTime.Now);
dataView.Sort = "EventDate";
dataTable = dataView.ToTable();
while (dataTable.Rows.Count > _rowLimit)
dataTable.Rows[dataTable.Rows.Count - 1].Delete();
return dataTable;
是否有更有效的方法来限制结果?
I generate a DataTable (from non-SQL data) and then use a DataView to filter the records.
I want to limit the number of records in the final record set but can't do this when I generate the DataTable.
I've resorted to deleting rows from the final result set, as per:
DataView dataView = new DataView(dataTable);
dataView.RowFilter = String.Format("EventDate > '{0}'", DateTime.Now);
dataView.Sort = "EventDate";
dataTable = dataView.ToTable();
while (dataTable.Rows.Count > _rowLimit)
dataTable.Rows[dataTable.Rows.Count - 1].Delete();
return dataTable;
Is there a more efficient way to limit the results?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以使用 Linq:
尝试将代码更改为以下内容:
您需要命名空间:System.Linq 和 System.Data
You can use Linq:
Try changing your code to the following:
You'll need namespace: System.Linq and System.Data
尝试将前 x 行从一个数据表复制到新数据表中。
然后使用它。
Try copying the top x rows from one datatable into a new one.
and then use that.
您可以添加一个类似于 rowcount 1,2,3 的列吗
当您将非 SQL 数据中的行添加到数据表时,就像递增一样。
可能之后您可以使用
RowIncrement 是类似于 ROWNUM 的列
Can you add a column which will be similar like rowcount 1,2,3
Something like incrementing as you add rows from your Non-SQL data to the datatable.
Probably after that you can use
RowIncrement is the column which would be something like ROWNUM