【发布时间】:2013-10-15 22:22:40
【问题描述】:
我研究过如何从数据表中删除行。
Dataset.Datatable.Rows(0).Delete()
我现在遇到的问题是我需要从我的 linq 查询中删除特定数据。
Dim qy = From rows In loadedData
Where rows.Field(Of Double)("count") = elem
Take elem
Select ("count")
我需要做的是删除此 linq 查询结果中的行。
"Delete top elem from loaded data where count = elem"
我只是不确定如何在 vb.net 中编写它,因为我的研究表明您无法使用 linq 查询来操作数据,您只能选择它。
哦,我之所以选择顶部元素,是因为元素可以重复,所以我可以计算 500 行和 500 行。所以我使用这个查询来获取前 500 行,然后删除它,所以当我再次运行查询时,我没有得到重复的数据。
任何帮助将不胜感激。
【问题讨论】:
-
重复部分不清楚。如果两行具有相同的
count=elem,您是否只想删除一行?然后你需要GroupBy计数并使用Skip(1)每组只留下一行。 -
我不确定您是否在其他地方使用此 Linq 查询,但是,如果没有,我想您可以做的是使 Linq 查询与您当前拥有的相反 - @987654327 @ 然后执行
Dataset.Datatable = MyQuery.CopyToDataTable之类的操作 - 与其删除行,不如使用 Linq 获取您想要保留的行。希望这是有道理的。 -
一个例子:我有一个 1000 行的 excel 电子表格。我有一个计数列,让我知道集合中有多少项目。在此示例中,我有所有 1000 行,其中 500 作为集合中的数字。这意味着我必须将其分解为两个单独的数据表。我要做的是将查询的结果添加到数据表中,删除我刚刚使用的数据,然后重新调整我的数据表数组以添加下一个块以避免重复。这是我想出的解决方案。不确定是否有更简单的方法
-
@JohnBustos 我明白你在说什么,但我需要所有数据。我正在获取我的 linq 查询的结果,将它们放入单独的数据表中,并最终将它们导出到单独的 csv 文件中,这些文件将用于插入 peachtree。在将它们添加到自己的数据表后,我试图删除单独的块。不过谢谢。