zoukankan      html  css  js  c++  java
  • WSS开发,搜索(SPQuery)时出现Invalid column name c2错误 (转载)

    (转载自 http://www.sharepointblogs.com/ssa/archive/2007/10/03/invalid-column-name-c2.aspx)

    Invalid column name c2

    SharePoint gives you this error when you try to search documents using the SPQuery object and you search by passing the document's

    Name. SPQuery object uses the internal field names so it's important to pass correct internal name for the correct field to be

    searched. By default, the "Name" field that is visible in the library has the internal name "LinkFilename" so when someone wants

    to search a document in the library using the "Name" field, obviously he uses the "LinkFilename" to search the document but

    strangely enough, it returns the following error:

    "Invalid column name C2"

    This error occurs in the sQL Server. SharePoint tries to search this field in the DB and returns an error when the field is not

    found. I haven't checked whether this field actually exists in the DB or not but we get an error. There are two more "Name" fields

    in the library. The internal names of the three "Name" fields are as following:

    Name="LinkFilename" DisplayName="Name FieldType="Computed" -> default

    Name="FileLeafRef" DisplayName="Name" FieldType="File"

    Name="LinkFilenameNoMenu" DisplayName="Name" FieldType="Computed"

    If you look at the definitions, you will notice that the FieldType of the two fields is "Computed" and for one field, it is

    "File". By default, it is the first field that is shown in the library. It has the FieldType "Computed". To search the document in

    the library using the "Name" field, you must use the second field that has the internal name "FileLeafRef". Although, this field

    is not visible in the library by default but it will return the document in the search. It's FieldType is "File" and therefore,

    you will have to pass the complete filename alongwith the extension in order for search to work and return the document. The third

    "Name" field also errors out. It is not necessary to make this field visible in the library to make the search work.

    Sample query:

    SPQuery query = new SPQuery();
    query.Query = "<Where><Eq><FieldRef Name='FileLeafRef'></FieldRef><Value Type='Text'>" + itemName + "</Value></Eq></Where>";
                               
    SPListItemCollection listitems = list.GetItems(query);

    "itemName" is the parameter that contains the file's name (passed from the interface or the calling function). It will be the

    complete name (alongwith extension), for example, document1.doc.

     

  • 相关阅读:
    Vue 引入 Zepto.js 报错:TypeError: Cannot read property ‘createElement’ of undefined
    VUE项目如何在移动端查看打印日志(console.log)
    将vue项目打包成移动端app
    vue 移动端项目(app)手机测试
    CheckBoxList 用法
    oracle 存储过程的写法
    jq 一些小方法
    根据时间分组
    ajax 异步调用把返回值赋给一个全局变量的用法,最主要的就是把async属性改为 false,
    C#裁剪照片并保存
  • 原文地址:https://www.cnblogs.com/llbofchina/p/1212838.html
Copyright © 2011-2022 走看看