SharePoint 2010 主从表关系 主表读取从表的个数

本文介绍了一种使用C#从SharePoint获取数据的方法,特别是通过Lookup字段进行查询的过程。该方法涉及从两个不同的列表中提取数据:数据分组和数据字典,并展示了如何统计特定分组下的条目数量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我写的方法很普通,如果有更好的写法,请分享

针对Lookup字段的查询还是有点不同的,在下面的代码里会描述出来

先介绍两个列表,数据分组与数据字典,图片都好说明,就截图了

 

这个不难,就直接写代码了

using (SPSite site = new SPSite("http://moss:168"))
            {
                using (SPWeb web = site.OpenWeb())
                {
                    SPList list = web.Lists["数据分组"];
                    SPQuery query = new SPQuery();
                    query.ViewFieldsOnly = true;
                    query.ViewFields = string.Concat(
                        "<FieldRef Name='ID'/>",
                        "<FieldRef Name='" + list.Fields["编码"].InternalName + "' />",
                        "<FieldRef Name='" + list.Fields["名称"].InternalName + "'/>"
                        );
                    SPListItemCollection listItemCollection = list.GetItems(query);
                    foreach (SPListItem item in listItemCollection)
                    {
                        Console.WriteLine(item["ID"] 
                            + "  " + item[list.Fields["编码"].InternalName] 
                            + "  " + item[list.Fields["名称"].InternalName]
                            + "  " + getDictCount(web, item[list.Fields["名称"].InternalName].ToString()));
                    }
                }
            }

下面是 getDictCount的方法

public static string getDictCount(SPWeb web, string GroupName)
        {
            SPList list = web.Lists["数据字典"];
            SPQuery query = new SPQuery();
            query.ViewFieldsOnly = true;
            query.Query = string.Concat(
                "<Where>",
                    "<Eq>",
                        "<FieldRef Name='" + list.Fields["分组"].InternalName + "'/>",
                        "<Value Type='Lookup'>" + GroupName + "</Value>",
                    "</Eq>",
                "</Where>"
                );
            SPListItemCollection listItem = list.GetItems(query);
            return listItem.Count.ToString();
        }

如果有写法简单的兄弟,请分享一下,呵呵

 

 

 

转载于:https://www.cnblogs.com/Fengger/archive/2012/06/18/2553827.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值