读书人

DataSet数据更新优化有关问题

发布时间: 2013-12-10 15:05:55 作者: rapoo

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;


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

读书人网 >C#

热点推荐