gpt4 book ai didi

c# - 在 C# 中从数据集中删除行的问题

转载 作者:太空宇宙 更新时间:2023-11-03 20:39:39 25 4
gpt4 key购买 nike

我有这种情况:我必须创建一个数据集,从另一个数据集中获取所有数据。在某些情况下,我必须从每个新数据集中删除一些行。当两个 foreach 循环都完成时,两个数据集都是空的,即使只完成第一个,第一个数据集也有一些行。

知道为什么,...或者告诉我哪里有代码错误。

提前致谢。

//Dataset comes as a parameter.    
DataSet dsFirst = ds;
DataSet dsSecond = ds;

foreach (DataRow dr in dsFirst.Tables[0].Select())
{
int i = Convert.ToInt32(dr["ROWNUMBER"]);
//merren vetem veprimet ATM qe jane bere para CoB
if (i > x && i < y)
dr.Delete();
else
dr["NOVATRANSAKCIJA"] = 0;//eshte derguar njehere, per rrjedhoje nuk do te dergohet sms
}
dsFirst.AcceptChanges();

foreach (DataRow dr1 in dsSecond.Tables[0].Select())
{
int i = Convert.ToInt32(dr1["ROWNUMBER"]);
//merren veprimet e sistemit dhe veprimet ATM te bera gjate CoB
if (i < x || i > y)
dr1.Delete();
else
dr1["NOVATRANSAKCIJA"] = 1;//nuk eshte derguar asnjehere, per rrjedhoje do te dergohet sms

}
dsSecond.AcceptChanges();

最佳答案

正如 Marc 已经指出的那样,您在这里使用的是引用类型值,因此您实际上是在使用 ds、dsFirst 和 dsSecond 指向同一个数据集。您必须制作数据集的副本才能实现您想要执行的操作。

尝试

dsFirst = ds.Copy(); 
dsSecond = ds.Copy();

相反,它将克隆结构并复制数据。

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

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