CAML 代码及嵌入列表实例

这段代码展示了如何在C#中使用CAML查询语法来筛选SharePoint列表中的特定项,根据用户电子邮件查找匹配项,并更新这些项的"Manager"字段。首先,它从"员工信息列表"中获取所有项,然后对每个项执行CAML查询,找到Title与用户电子邮件关联的值,最后更新项的Manager属性。
<Query>
   <Where>
      <Eq>
         <FieldRef Name='ID' />
         <Value Type='Counter'>段传涛</Value>
      </Eq>
   </Where>
</Query>








            using (SPSite site = new SPSite("http://localhost"))
            {
                using (SPWeb web = site.OpenWeb())
                {
                    //SPList list = SPContext.Current.Web.SiteUserInfoList;
                    SPList list = web.Lists["员工信息列表"];
                    foreach (SPListItem item in list.Items)
                    {
                        string userEmail = string.Format("{0}", item["Email"]);
                        if (hashtable.ContainsKey(userEmail))
                        {
                            object getstr = hashtable[userEmail];
                            ////////
                            SPQuery myquery = new SPQuery();
                            myquery.Query = string.Format(@"<Query>
                              <Where> <Eq><FieldRef Name='Title' /><Value Type='Text'>{0}</Value>
                                 </Eq> </Where></Query>", getstr);
                            //得到caml的结果
                            //try
                            //{
                                SPListItemCollection myitems = list.GetItems(myquery);//.GetItemById(getuser.ID);
                                DataTable mydt = list.GetItems(myquery).GetDataTable();
                                DataRow[] mydr = mydt.Select("Title='" + getstr + "'");
                                DataRow getdr = mydr[0];
                                //获得指定人的登录名
                                string myLoginName = getdr["LoginName"].ToString();
                                SPUser user = SPContext.Current.Web.SiteUsers[myLoginName];
                                //SPUser sptest = SPContext.Current.Web.CurrentUser;
                                object getmanager = user.ID + ";#" + user.Name;
                            
                                item["Manager"] = getmanager;
                                item.Update();
                                //i++;
                            //}
                            //catch
                            //{


                            //};
                        }
                    }
                }
            } 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值