Sharepoint UpdateListItems列表未更新

时间:2009-09-01 14:17:30

标签: c# sharepoint moss wss

我向UpdateListItems提交更新。它返回成功,但列表项没有更新。关于如何追踪出现问题的任何建议?

以下是生成的XML:

<Batch OnError='Continue' ListVersion='1' ViewName=''>
   <Method ID='1' Cmd='Update'>
      <Field Name='ID'>11707</Field>
      <Field Name='Business_x0020_Area'>Consumer</Field>
      <Field Name='Team'>6;#IT Support</Field>
      <Field Name='Job_x0020_Number'>TEMP</Field>
      <Field Name='Media_x0020_Outlet2'>13;#BBC Parliament</Field>
      <Field Name='Publication_x0020_Date'>2009-09-01 14:40:10</Field>
      <Field Name='Narrative2'></Field>
      <Field Name='Page_x0020_Number'>1</Field>
      <Field Name='Media_x0020_Value'></Field>
      <Field Name='Information_x0020_Only'>0</Field>
      <Field Name='Date_x0020_Added'></Field>
   </Method>
</Batch>

更新

我在U2U中遇到的错误是

0x81020014未正确安装一个或多个字段类型。转到列表设置页面以删除这些字段。

4 个答案:

答案 0 :(得分:2)

我在CAML中有一个不在数据库中的内部字段。这导致它绊倒。

答案 1 :(得分:1)

我的第一个建议是保留字段名称,例如“业务区域”而不是“Business_x0020_Area”。我知道当你查找列表xml文件时,字段名称就像那样显示。第二个建议是关于你的日期字段。确保您的日期构建正确。日期字段格式为YYYY-MM-DDTHH:MM:SSZ。 T和Z很重要。我希望它有所帮助。

答案 2 :(得分:0)

401表示您未登录,或者您登录的用户对该列表没有权限。验证用户“正在执行”批处理脚本是否可以登录到站点并对列表进行更改。

答案 3 :(得分:0)

我为这个日期做了类似的事情

public DateTime dateForSp(string s)
{
    string[] sd = s.Split('/');
    string[] yd = sd[2].Split(' ');
    string[] hd = yd[1].Split(':');

    DateTime dt = new DateTime(Int32.Parse(yd[0]),
                               Int32.Parse(sd[0]),
                               Int32.Parse(sd[1]),
                               Int32.Parse(hd[0]),
                               Int32.Parse(hd[1]),
                               Int32.Parse(hd[2]));

    return dt;
}

并在代码中

"<Field Name='SubmissionTime'>" + String.Format("{0:u}", dateForSp(this.rProperty["SubmissionTime"])) + "</Field>"