首页新闻招聘找找看知识库
  • virus
    2008-11-06 13:10 virus
    @生鱼片
    不行啊,我已经看过你的文章了
    近在研究WSS V3开发的基本知识,在联合查询,也就是跨列表查询碰到了问题,我照着列子做了,可是出不来结果,没有报错,但是结果为零。
    下面是代码,大家可以帮我看一下,有什么问题,还有啊,我的MSN:jorden008@hotmail.com,欢迎大家和我交流,共同进步,共同 MOSS MVP,哈哈。

    我建立了一个网站,三个列表,
    签到信息:姓名,签到时间,签退时间
    班次设置:班次名称,开始时间,结束时间
    排班设置:姓名,班次名称
    现在想联合班次列表和排版列表,根据姓名查询班次的开始、结束时间,这要是用sql,就好弄多了,



    select 姓名,班次名称,开始时间,结束时间 from 班次设置 inner join 排班设置 on 班次设置.班次名称=排班设置.班次名称 where 姓名=“virus”
    可是在sharepoint中,就是没有结果,下面是我的代码,谢谢大家了,如果有了结果,我也会及时更新的



    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Data;
    using Microsoft.SharePoint;

    namespace ConsoleApplication3
    {
    class Program
    {
    static void Main(string[] args)
    {
    SPSite site = new SPSite("http://virus/sites/intranet/");
    SPWeb web = site.OpenWeb("sdev");
    SPSiteDataQuery siteQuery = new SPSiteDataQuery();

    siteQuery.Webs = "<Webs Scope=\"SiteCollection\" />";

    //siteQuery.Lists = string.Format("<Lists><List ID='{0}' /><List ID='{1}' /></Lists>",
    // web.Lists["班次设置"].ID, web.Lists["排班设置"].ID);
    //siteQuery.ViewFields = string.Format("<FieldRef Name='{0}' /><FieldRef Name='{1}' /><FieldRef Name='{2}' />",
    // web.Lists["排班设置"].Fields["姓名"].InternalName, web.Lists["班次设置"].Fields["开始时间"].InternalName,
    // web.Lists["班次设置"].Fields["结束时间"].InternalName);
    //siteQuery.RowLimit = 10;
    siteQuery.Query = string.Format("<Where><Eq><FieldRef Name='{0}' /><Value Type='Text'>{1}</Value></Eq></Where>",
    web.Lists["排班设置"].Fields["姓名"].InternalName, "史文彬");

    DataTable dt = web.GetSiteData(siteQuery);
    foreach (DataRow row in dt.Rows)
    {
    foreach (DataColumn col in dt.Columns)
    {
    Console.WriteLine(col.ColumnName+":"+row[col].ToString());
    }
    }

    Console.ReadLine();
    }
    }
    }

    要么就是下面的结果,不是我想要的啊
    ListId:{9E71D527-5169-42D6-8A91-8B9EB1430521}
    WebId:{42EF18F6-3FA5-4CAF-A176-3F0F1E81B8AB}
    ID:2
    ListId:{E78A92E8-7831-4E1F-B222-B370E0F7AC8B}
    WebId:{42EF18F6-3FA5-4CAF-A176-3F0F1E81B8AB}
    ID:1


    第2楼 回到顶楼
  • slp415
    2010-12-13 18:02 slp415
    哎,也碰到这个问题了。

    有解决方法吗?

    麻烦发一下。站内邮件
    第3楼 回到顶楼
  • virus
    2010-12-13 18:57 virus
    没有解决办法?
    我以前用sharepoint2007的时候,没有办法解决。
    因为它的设计目的就是那个查询结果。
    除非你自己处理查询结果。
    它(至少在2007)不支持sql的join概念。
    2010我没有用过,我也一年没有动过sharepoint了。
    你问问其他人吧。
    第4楼 回到顶楼
  • lvlv
    2011-03-07 15:15 lvlv
    哎,sharepoint 就不支持联合查询啊,简直麻烦死了,sql 太灵活了
    第5楼 回到顶楼
登录后才能评论,请先登录注册