首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

DataSet数据更新优化有关问题

2013-12-10 
DataSet数据更新优化问题 以下主要是确定在DataSet中是存在指定的值,如果存在,则在数量上自增1, 如果DataS

DataSet数据更新优化问题
 以下主要是确定在DataSet中是存在指定的值,如果存在,则在数量上自增1,
 如果DataSet存在上万条记录,通过通过以下代码全表循查找更新是否会比较耗时?(其实就只需要更新一条)
请问在更新数量的操作上是否有更优化的方法???????????????????????
                String ID ="AAAAAA";
                String Name = "BBBBBB";              
                DataView tab = new DataView(ds.Tables[0]); 
                tab.RowFilter = "ids = '" +ID + "'";
                if (tab.Count < 1)
                {
                        DataRow row = ds.Tables[0].NewRow();
                        row["ids"] = ID;
                        row["names"] = Name;
                        row["quantity"] = 1;
                        ds.Tables[0].Rows.Add(row);
                        ...........

                    }
               else
               {

                   //以下更新操作是否可以优化??????????????????? ------------------
                   int qty = 0;
                   for(int i=0;i<ds.Tables[0].Rows.Count;i++)
                   {
                      if (ds.Tables[0].Rows[i]["ids"].ToString() == ID)
                      {
                             qty = (int)ds.Tables[0].Rows[i]["quantity"];
                             ds.Tables[0].Rows[i]["quantity"] = qty + 1;
                       }
                     }
                }
[解决办法]
哪一条被操作了就把他记录的临时的table里,更新只更新存在于临时table里的数据。为了更新一条操一万条太耗费了。我这你可以把你更新了那一条就把序号记录下来再跟新
[解决办法]

引用:
搞定了.优化如下: 
 DataRow[] rows = ds.Tables[0].Select("ids='" + ID+ "'");
 int qty = 0;
 qty = (int)rows[0]["quantity"];
 rows[0]["quantity"] = qty + 1;


转换太多会影响效率的 ,建议在数据库做自增,或者在录入的时候自增 

热点排行