SharePoint中删除列表记录

方法1(快速,以理解,可以封装):

SPList spListQuestion = spWeb.Lists["Question List"];
for (int i = spListQuestion.Items.Count - 1; i >= 0; i--)
{
    spListQuestion.Items[i].Delete();
}

方法2(繁琐):

SPList spListQuestion = spWeb.Lists["Question List"];
string sDIDTitle = spListQuestion.Fields["DID"].InternalName;
SPQuery spQuery = new SPQuery();
spQuery.Query = "" + "" + spDocItem.ID.ToString() + "";
SPListItemCollection collListItems = spListQuestion.GetItems (spQuery);
for (int i = 0; i < collListItems.Count; i++)
{
    string ID = collListItems[i]["ID"].ToString();
    SPItem spItem = spListQuestion.GetItemById (Int16.Parse (ID) );
    spItem.Delete();
}

方法3(推荐):

SPList targetList = null;
try
{
    targetList = currentWeb.GetList (currentWeb.ServerRelativeUrl.TrimEnd ('/') + listUrl);
}
catch { }
if (targetList != null)
{
    StringBuilder sbDelete = new StringBuilder();
    sbDelete.Append ("<?xml version=\"1.0\" encoding=\"UTF-8\"?><Batch>");
    foreach (SPItem item in targetList.Items)
    {
        if (item["Title"] != null)
        {
            sbDelete.Append ("<Method>");
            sbDelete.Append ("<SetList Scope=\"Request\">" + targetList.ID + "</SetList>");
            sbDelete.Append ("<SetVar Name=\"ID\">" + Convert.ToString (item.ID) + "</SetVar>");
            sbDelete.Append ("<SetVar Name=\"Cmd\">Delete</SetVar>");
            sbDelete.Append ("</Method>");
        }
    }
    sbDelete.Append ("</Batch>");
    try
    {
        currentWeb.ProcessBatchData (sbDelete.ToString() );
        targetList.Update();
    }
    catch (Exception ex)
    { }
}

 

posted @ 2014-05-01 10:37  Toby Wang  阅读(535)  评论(0编辑  收藏  举报