转:http://www.cnblogs.com/chenxizhang/archive/2009/10/23/1588415.html

我们经常需要对一个列表进行查询,此时最灵活的方式就是直接使用SPQuery对象。这个对象的查询语法称为CAML。一般为了简单起见,我们会通过下面这样小工具先生成一个查询范例

我们可以看到查询文本大致如下

<Query>

   <Where>

      <Contains>

         <FieldRef Name='_x6d4b__x8bd5_' />

         <Value Type='Text'>chenxizhang</Value>

      </Contains>

   </Where>

</Query>

点击"Test"之后,可以看到如下效果

下面,我们就很自然地想到将这个查询文本用于我们自己的SPQuery对象

SPSite site = new SPSite("http://localhost:8080");

SPWeb web = site.OpenWeb();

SPList list = web.Lists["测试文档库"];

SPQuery q = new SPQuery();

q.Query = string.Format("<Query><Where><Contains><FieldRef Name='{0}' /><Value Type='Text'>{1}</Value></Contains></Where></Query>", "_x6d4b__x8bd5_", "chenxizhang");

q.ViewFields = list.DefaultView.ViewFields.SchemaXml;

foreach (SPListItem item in list.GetItems(q))

{

    Console.WriteLine(item.ID);

}

Console.WriteLine("完成查询");

以上代码看似很正常,但很奇怪的是,查询似乎没有起作用,因为它总是返回文档库全部的ListItem

经过检查和确认,一定要将<Query>这个根元素拿掉,才可以生效。所以这是典型的由工具产生的误导啊

SharePoint : 使用SPQuery对象时要注意的事项的更多相关文章

  1. EC笔记:第二部分:12、复制对象时勿忘其每一个成分

    EC笔记:第二部分:12.复制对象时勿忘其每一个成分 1.场景 某些时候,我们不想使用编译器提供的默认拷贝函数(包括拷贝构造函数和赋值运算符),考虑以下类定义: 代码1: class Point{ p ...

  2. 序列化类型 System.Data.Entity.DynamicProxies 的对象时检测到循环引用

    学习 EF Code First+MVC 时遇到了在请求JsonResult时出现 序列化类型 System.Data.Entity.DynamicProxies 的对象时检测到循环引用 的异常,原因 ...

  3. 创建COM对象时遭遇 800702e4

    SolidEdge st5(x64) SDK /vs2012/win8.1 x64 西夏普创建SEApplication COM对象时遭遇800702e4.翻来覆去的调vs进程的权限,调se进程的权限 ...

  4. sharepoint 2010 页面刷新时滚动条位置保持不变 Controlling scrollbar position on postback

    sharepoint 2010 页面刷新时滚动条位置保持不变 Controlling scrollbar position on postback在sharepoint 2010中,如果当前页面的篇幅 ...

  5. PHP“Cannot use object of type stdClass as array” (php在调用json_decode从字符串对象生成json对象时的报错)

    php再调用json_decode从字符串对象生成json对象时,如果使用[]操作符取数据,会得到下面的错误 错误:Cannot use object of type stdClass as arra ...

  6. [ActionScript 3.0] AS3 用于拖动对象时跟随鼠标的缓动效果

    package com.fylibs.components.effects { import flash.display.DisplayObject; import flash.events.Even ...

  7. 对于json对像,怎么遍历json对象的所有key,在使用json对象时,如果无法知道key,怎么通过key变量来获取值

    对于json对像,怎么遍历json对象的所有key,在使用json对象时,如果无法知道key,怎么通过key变量来获取值?请参阅下面的关键代码: <html> <head> & ...

  8. 部署SharePoint解决方式包时遇到的问题

    部署SharePoint解决方式包时遇到的问题 近期我在使用STSADM.EXE命令部署解决方式包的时候.遇到一个问题.很的难搞.         创建WSP文件非常easy.加入到解决方式库也非常e ...

  9. 序列化类型为“System.Reflection.Module”的对象时检测到循环引用

    在使用ajax调用web services时,正好返回的类型为datatable,想用通过json方式直接解析,但调用后,得到如下错误: 序列化类型为“System.Reflection.Module ...

随机推荐

  1. 九度OJ 1511 从尾到头打印链表

    题目地址:http://ac.jobdu.com/problem.php?pid=1511 题目描述: 输入一个链表,从尾到头打印链表每个节点的值. 输入: 每个输入文件仅包含一组测试样例. 每一组测 ...

  2. 结构型模式——Bridge(未完成)

    1.意图 将抽象部分与它的实现部分分离,使它们都可以独立地变化.

  3. Sheepdog HTTP API

    1.sheepdog中http simple storage中nginx后台配置文件模板留存: events { worker_connections 1024;} http { server { l ...

  4. C++字符串函数与C字符串函数比较

    赋值拷贝: #include <iostream> #include <string> using namespace std; void main(){ string a=& ...

  5. MySQL中SQL语句的分类

    1:数据定义语言(DDL) :创建和删除数据库(CREATE DATABASE || DROP  DATABASE):2:创建.修改.重命名.删除表(CREATE  TABLE || ALTER TA ...

  6. (转载)Delphi开发经验谈

    Delphi开发经验谈 开发环境-------- Delphi 7是一个很经典的版本,在Win2000/XP下推荐安装Delphi 7来开发软件,在Vista下推荐使用Delphi 2007开发软件. ...

  7. 最近在无线USB网卡投入比较大

    第一次(40): 乐光N18网卡 17 5米USB延长线 10 DVD2 3 运费10 第二次(30): 8187L主板13 5DB/6DB全向天线 5 外壳FREE 运费12 第三次(20): 8D ...

  8. 实例解析C++虚表

    OS:Windows 7 关键字:VS2015,C++,V-Table,虚表,虚函数. 对C++ 了解的人都应该知道虚函数(Virtual Function)是通过一张虚函数表(Virtual Tab ...

  9. MVC5 学习笔记2

    去除VS Browser Link废代码 在webconfig中添加 <configuration> <appSettings> <add key="vs:En ...

  10. Razor语法小记

    1.代码块中,<text>标签用来输出,如: @{ <text>sdfsdf</text> } 输出Html: sdfsdf