开发背景:
某部门数据的积累导致列表打开变慢,大概10秒左右。正常的解决方案为设置列表视图筛选,或者直接在数据库中删除或假删除数据。
软件界面:
关键代码:
1 using (SPWeb web = new SPSite("http://avv/yixiaozi/").OpenWeb()) 2 { 3 SPList list = web.GetList("http://avv/yixiaozi/Lists/aaa/"); 4 web.AllowUnsafeUpdates = true; 5 SPQuery query = new SPQuery(); 6 query.Query = @"<Where> 7 <Lt> 8 <FieldRef Name='Created' /> 9 <Value Type='DateTime'>" + "2015-04-07T00:00:00Z" + @"</Value> 10 </Lt> 11 </Where>"; 12 13 SPListItemCollection itemColl = list.GetItems(query); 14 DateTime time = DateTime.Now; 15 for (int i = itemColl.Count - 1; i >= 0; i--) 16 { 17 itemColl[i].Delete(); 18 Console.WriteLine(i.ToString()); 19 20 } 21 Console.WriteLine(((TimeSpan)(DateTime.Now - time)).Seconds.ToString()); 22 Console.ReadKey(); 23 }
软件源码:
http://files.cnblogs.com/files/yixiaozi/ListRuduction.rar
http://files.cnblogs.com/files/yixiaozi/ADDData.rar(测试用户添加程序)
现在发现通过对象模型删数据太没有效率了,有一种更好的解决方案。
http://blog.csdn.net/chadcao/article/details/5987901