gpt4 book ai didi

c# - 从链接到 SQL 数据库的数据集中有效删除行

转载 作者:太空宇宙 更新时间:2023-11-03 16:40:16 24 4
gpt4 key购买 nike

大家好
我正在从数据集中删除行。我要删除的所有行的共同点是该列具有相同的值,因此 .FirstOrDefault(x => x.stock == key) 顺便说一句,它是一个 int。

 public bool RemoveStock(string tickerName) {       
bool couldBeRemoved = false;
int key = this.getKeyFromtickerName(tickerName);
stockDataSet.ListingRow found =
listingDataTable.FirstOrDefault(x => x.stock == key);

while (found != null) {
listingDataTable.RemoveListingRow(found);
found = listingDataTable.FirstOrDefault(x => x.stock == key);
}

listingTa.Update(listingDataTable);
listingDataTable.AcceptChanges();
return couldBeRemoved;
}

edit 时间花在了循环中。我假设函数 .FirstOrDefault 从数据集的开头开始,如果我没记错的话,我有大约 250 万行。 结束编辑

该功能有效,但速度非常慢。删除 7000 行需要 10 - 15 分钟的订单。它必须是更好的方法,但是如何呢?

最好的问候
戈尔根

最佳答案

您正在使用 while 循环从头开始迭代所有记录。您可以只迭代一次以找到需要删除的记录,然后您可以像这样在循环中删除它们:

var itemsToBeRemoved = listingDataTable.Where(x=>x.stock == key).ToList();
foreach (var item in itemsToBeRemoved)
listingDataTable.RemoveListingRow(item);

关于c# - 从链接到 SQL 数据库的数据集中有效删除行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7790344/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com