Sharepoint UpdateListItems列表未更新
问题描述:
我向UpdateListItems提交更新。它返回成功,但列表项没有更新。有关如何追踪发生问题的任何建议?Sharepoint 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一个或多个字段类型不正确安装。转至列表设置页面以删除这些字段。
答
我在CAML中有一个不在数据库中的内部字段。这导致它绊倒。
答
我的第一个建议是保留字段名称,例如“Business Area”而不是“Business_x0020_Area”。我知道什么时候查找列表xml文件时,字段名称会以这种方式显示。第二个建议是关于你的日期字段。确保你的日期正确。日期字段格式为YYYY-MM-DDTHH:MM:SSZ。 T和Z很重要。我希望它有帮助。
答
我做了这样的事情的日期
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>"
你可以张贴的代码片段? – DevinB 2009-09-01 14:23:20
您是否使用C#来处理批处理?您是否使用“ProcessBatchData”功能?如果你是,结果字符串是什么? – DevinB 2009-09-01 15:08:34
我只是在lists.asmx中使用UpdateListItems方法。 – Jack 2009-09-01 15:13:16