在 VB.Net 中过滤数据表
我有一个具有以下结构的数据表。
mid mname version baseID
------------------------------------
1 tag3 1 1
2 tag3 2 1
3 tag3 3 1
4 tag5 1 4
5 tag5 2 4
6 tag6 1 6
从上面的结构我需要一个类似这样的数据表。 我需要从数据表中获取最高版本。
mid mname version baseID
------------------------------------
3 tag3 3 1
5 tag5 2 4
6 tag6 1 6
如何创建与上面类似的数据表。 我正在使用 Vb.Net
提前致谢。
I am having a datatable with following structure.
mid mname version baseID
------------------------------------
1 tag3 1 1
2 tag3 2 1
3 tag3 3 1
4 tag5 1 4
5 tag5 2 4
6 tag6 1 6
From the above structure I need a datatable similar like this.
I need to take the highest version from the datatable.
mid mname version baseID
------------------------------------
3 tag3 3 1
5 tag5 2 4
6 tag6 1 6
How can I create a datatable similar like the above.
I am using Vb.Net
Thanks in advance.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这取决于您如何填充原始数据表。如果您通过查询数据库来完成此操作,我会在查询本身中格式化结果集,如下所示:
(SQL)
这将在将数据放入数据表之前格式化数据。
如果数据表是通过其他方式填充的,并且您需要对其进行过滤,然后将其放入另一个数据表中。那么一个简单的方法(假设你的数据表总是按上述方式排序)是:
现在语法可能在这里或那里关闭(用 notpad 写),但逻辑的想法就在那里。假设您每次都具有相同的格式,那么我将检查该行何时更改为新的基本 ID 并将该行添加到新的数据表中。从您发布的示例来看,特定基本 ID 的最大版本似乎是该基本 ID 的最后一行。
-克里斯
It depends upon how your populating the original datatable. if you are doing it by querying a database I would format the result set in the query itself something like:
(SQL)
this would format the data before its put into the datatable.
If the datatable is populated by other means and you need to filter it then put it in antoher datatable. then an easy way to do it (assuming your datatable is always sorted in the above manner) is:
Now the syntax might be off here or there (wrote it in notpad) but the idea of the logic is there. assuming you have the same format each time then I'm checking for when the row changes to a new baseid and adding that row to the new datatable. from the example you posted it looks like the max version of a particular baseid is the last row of that baseid.
-Chris
我已经使用
Datatables.Compute() 使用 GROUP By 获取最大值
I have used
Datatables.Compute() to get the MAX value using GROUP By