承接MOSS各种工作流开发 联系人:王先生.电话:13691349686 QQ:252385878 MSN:wanghao-3@hotmail.com

寻找网络安全产品代理商(主要产品有:主机审计与监控系统,移动介质管理系统,文件集中管理安全存储系统,硬盘锁等)主要针对内网安全和数据防泄密 联系人:张小姐 电话:13522877350 QQ:419919940

MOSS 关于SPQuery 和SPSiteDataQuery的区别好用法!

              
     下面的代码是给在做MOSS开发的同行们的一些对象模型的学习,和自己的看法
    MOSS 关于SPQuery 的用法,是关于列表的查询范围比较的小。。 
      SPWeb web = (new SPSite("http://moss/sites/hello")).OpenWeb();
                SPList list = web.Lists["test"];
                SPQuery query = new SPQuery();
                query.Query = "<Where><Contains><FieldRef Name='Title'/><Value Type='Text'>4</Value></Contains></Where>";
                SPListItemCollection items = list.GetItems(query);
                foreach(SPListItem item in items)
                    Console.WriteLine(item.DisplayName);
    SPSiteDataQuery的是查询整个Site的范围比SPQuery大,我就不在这里罗嗦拉,大家看拉代码测试一下,就很明白拉 
                SPWeb web = (new SPSite("http://moss/sites/hello")).OpenWeb();
                SPSiteDataQuery query = new SPSiteDataQuery();
                query.Query = "<Where><Contains><FieldRef Name='Title'/><Value Type='Text'>4</Value></Contains></Where>";
                query.Lists = "<Lists BaseType='0' />";
                query.Webs = "<Webs Scope='Recursive' />";
                query.ViewFields = "<FieldRef Name='Title' /><ProjectProperty Name='Title' /><ListProperty Name='Title' />";
                DataTable dt = web.GetSiteData(query);
                Console.WriteLine(dt.Rows.Count);
希望对各位有帮助!!!

posted on 2007-06-14 10:13 A A 阅读(1863) 评论(6)  编辑 收藏 所属分类: SharePoint

评论

#1楼 [楼主] 2007-06-14 12:02 AA(Show)      

对弹道导弹   回复  引用  查看    

#2楼 [楼主] 2007-12-26 22:47 A A      

protected void btnSearch_Click(object sender, EventArgs e)
{
try
{

SPSecurity.RunWithElevatedPrivileges(delegate()
{
string query = ""+this.texName.Text+"";

SPSite site = new SPSite(@"http://wh/sites/oa");
site.AllowUnsafeUpdates = true;
SPWeb web = site.OpenWeb();
web.AllowUnsafeUpdates = true;
SPList list = web.Lists["文件查询"];
SPViewCollection views = list.Views;

StringCollection viewFields = new StringCollection();

for (int i = 0; i < list.DefaultView.ViewFields.Count; i++)
{
viewFields.Add(list.DefaultView.ViewFields[i]);

}

SPView view = null;
try
{
view = views["查询结果"];

}
catch
{
}
if (view == null)
{
view = views.Add("查询结果", viewFields, query, 10, true, false);

}
else
{
view.Query = query;
}
view.Update();

string url = list.DefaultViewUrl.Replace(list.DefaultViewUrl, view.Url);
this.Response.Redirect(url);
web.AllowUnsafeUpdates = false;
site.AllowUnsafeUpdates = false;


});
}
catch(Exception ex)
{
this.Response.Write(ex.Message);
}


}   回复  引用  查看    

#3楼  2008-01-26 22:01 AB [未注册用户]

你人太好了!
代码很受用!

thanks
  回复  引用    

#4楼  2008-04-14 11:10 追萝驴      

用力顶!   回复  引用  查看    

#5楼  2008-06-17 17:21 cdboy1 [未注册用户]

用"SPSiteDataQuery"查询有没有实现分页取数据的可能?   回复  引用    


标题  
姓名  
主页
Email (只有博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2007-09-15 20:40 编辑过
 
另存  打印