2个DataSet中的数据传递问题,请高手们多多指教。

博主在项目中为提高系统效率,将访问频繁的DataSet存于缓存,后提取部分数据做成新DataSet时,发现修改新DataSet会同步修改缓存中的DataSet。虽通过添加取消删除操作的程序实现功能,但希望探讨更好办法消除数据同步修改问题。

大家好,有个问题希望和大家一起讨论一下,希望高手们能多多指教;

我在一个项目中为了提高系统的效率,把几个访问频繁的DataSet保存在缓存中了,
后来又想根据需要提取缓存的DataSet中的部分数据来做成一个新的DataSet,于是
我先把缓存的DataSet的所有数据都赋值给一个新的DataSet,然后删除新的DataSet中
的部分数据来满足新的需要,结果当我再次调用缓存的DataSet时,发现缓存的DataSet
中的数据也被删除了,

   DataSet My_CSCache = _cache.Get(key) as DataSet;

   if (My_CSCache==null)
   {
    Insert(key,Get_DataSet(Sql),null,Seconds);
   }

   DataSet dts1 = new DataSet();
   dts1 = _cache.Get(key) as DataSet;
   
   for(int i = 0;i < (dts1.Tables[0].Rows.Count/2); i++)
    {
      dts1.Tables[0].Rows[i].Delete();
    }

    
 于是只好在每次访问缓存的DataSet时加上下面的程序来取消删除操作
 
   DataSet My_CSCache = _cache.Get(key) as DataSet;

   if (My_CSCache==null)
   {
    Insert(key,Get_DataSet(Sql),null,Seconds);
   }

   DataSet dts1 = new DataSet();
   dts1 = _cache.Get(key) as DataSet;
   dts1.RejectChanges();


虽然这样能够实现我要的功能,但我不知道大家有没有更好的办法。如何做
可以消除2个DataSet中的数据修改会同步修改的问题。

转载于:https://www.cnblogs.com/sundy/archive/2005/10/27/263268.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值