MOSS中对列表的一些操作(创建,查询等)

简介:

1.查询列表的所有字段

SPSite site = new SPSite("http://carysun");
SPWeb web=site.OpenWeb();
SPList list = web.GetList("/IT Infrastructure");
foreach (SPField sf in list.Fields)
{
    Console.WriteLine(sf.Title);
}
2.使用对象模型创建列表,SPListTemplateType.Announcements指定使用通知内容类型作为模板来创建。

注意一定要调用Update()方法。

string listName="AnnouList";                    
foreach(SPList currList in web .Lists)
{      
   if(currList.Title.Equals(listName,StringComparison.InvariantCultureIgnoreCase))
   {
      list=currList;
      break;
   }
}
if(list==null)
{
     Guid listID=web.Lists.Add(listName,"New nnouncements",SPListTemplateType.Announcements);
     list=web.Lists[listID];
     list.OnQuickLaunch=true;
     list.Update();
 }

3.使用对象模型给列表添加item,注意一定要调用Update()方法。

SPListItem newItem = null;
newItem = list.Items.Add();
newItem["Title"] = "AnnouItem1";
newItem["Body"] = "The first AnnouItem1 ";
newItem["Expires"] = DateTime.Now + TimeSpan.FromDays(2);
newItem.Update();

newItem = list.Items.Add();
newItem["Title"] = "AnnouItem2";
newItem["Body"] = "The second AnnouItem2.";
newItem["Expires"] = DateTime.Now + TimeSpan.FromDays(5);
newItem.Update();

















4.查询item的相关信息
foreach (SPListItem listItem in list.Items)
{
      foreach (SPField field in list.Fields)
      {
          if (!field.Hidden && !field.ReadOnlyField)
                Console.WriteLine("{0} = {1}", field.Title, newItem[field.Id]);
       }
}

5. 如果你要想得到一个列表的item,你可以通过WebId, ListId, and ID来得到.

SPWeb parentWeb = web.Site.OpenWeb(new Guid(row["WebId"].ToString()));
SPList list = parentWeb.Lists[ new Guid(row["ListId"].ToString()) ];
SPListItem item = list.GetItemById((int.Parse(row["ID"].ToString())));

 
6.使用SPQuery来查询列表中item信息:

SPQuery query = new SPQuery();
query.ViewFields = @"<FieldRef Name='Title'/><FieldRef Name='Created'/>";
query.Query = @"<Where>
       <Neq>
         <FieldRef Name='Created' />
         <Value Type='DateTime'>
         <Today /></Value>
       </Neq>
    </Where>";

SPList list = web.Lists["AnnouList"];
SPListItemCollection items = list.GetItems(query);
foreach (SPListItem expiredItem in items)
{
    Console.WriteLine(expiredItem["Title"]);
    Console.WriteLine(expiredItem["Created"]);
}

6.1. ViewFields 表示你查询后要返回的字段

6.2. Query表示查询过滤的表达式,使用CAML语言

7. 使用SPSiteDataQuery来查询列表中item信息

SPSiteDataQuery query = new SPSiteDataQuery();
query.Lists = @"<Lists ServerTemplate='104' />";
query.ViewFields = @"<FieldRef Name='Title'/><FieldRef Name='Created'/>";
query.Webs = "<Webs Scope='SiteCollection' />";
string queryText =@"<Where>
         <Neq>
           <FieldRef Name='Created' />
           <Value Type='DateTime'>
           <Today /></Value>
         </Neq>
     </Where>";
query.Query = queryText;
DataTable table = web.GetSiteData(query);
foreach (DataRow row in table.Rows)
{
     Console.WriteLine(row["Title"].ToString() + row["Created"].ToString());
}

7.1. query.Lists = @"<Lists ServerTemplate='104' />";中104代表通知列表类型

7.2 query.Webs = "<Webs Scope='SiteCollection' />";为查询的范围。

7.3. CAML的基本格式是这样的:“<Where><operator><operand /><operand /></operator> </Where>”.

7.4.使用SPQuery返回的是SPListItemCollection,而SPSiteDataQuery可以从不同的列表或是整个网站集查,实际上是返回了一个ADO.NET DataTable对象。

7.5 下表是CAML查询的一些简单说明:

元素 说明
And 并且
BeginsWith 以某字符串开始的
Contains 包含某字符串
Eq 等于
FieldRef 一个字段的引用 (在GroupBy 中使用)
Geq 大于等于
GroupBy 分组
Gt 大于
IsNotNull 非空
IsNull
Leq 小于等于
Lt 小于
Neq 不等于
Now 当前时间
Or
OrderBy 排序
Today 今天的日期
TodayIso 今天的日期(ISO格式)
Where Where子句


本文转自生鱼片博客园博客,原文链接:http://www.cnblogs.com/carysun/archive/2008/06/17/mosslist.html,如需转载请自行联系原作者

目录
相关文章
|
9天前
|
人工智能 运维 安全
|
7天前
|
人工智能 异构计算
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
|
8天前
|
机器学习/深度学习 人工智能 自然语言处理
B站开源IndexTTS2,用极致表现力颠覆听觉体验
在语音合成技术不断演进的背景下,早期版本的IndexTTS虽然在多场景应用中展现出良好的表现,但在情感表达的细腻度与时长控制的精准性方面仍存在提升空间。为了解决这些问题,并进一步推动零样本语音合成在实际场景中的落地能力,B站语音团队对模型架构与训练策略进行了深度优化,推出了全新一代语音合成模型——IndexTTS2 。
701 23
|
8天前
|
人工智能 测试技术 API
智能体(AI Agent)搭建全攻略:从概念到实践的终极指南
在人工智能浪潮中,智能体(AI Agent)正成为变革性技术。它们具备自主决策、环境感知、任务执行等能力,广泛应用于日常任务与商业流程。本文详解智能体概念、架构及七步搭建指南,助你打造专属智能体,迎接智能自动化新时代。
|
人工智能 数据可视化 数据挖掘
Quick BI 体验&征文有奖!
瓴羊生态推出Quick BI 征文激励计划,鼓励用户分享数据分析实践经验与技术洞察,征集高质量原创文章。内容围绕AI功能体验与BI案例实践,设季奖、年奖及参与奖,优秀作者可获现金奖励、产品内测资格及官方认证形象。投稿截止至2026年3月31日。
Quick BI 体验&征文有奖!