SharePoint "System.Data.SqlClient.SqlException (0x80131904): Parameter '@someColumn' wa

Posted mh菜鸟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SharePoint "System.Data.SqlClient.SqlException (0x80131904): Parameter '@someColumn' wa相关的知识,希望对你有一定的参考价值。

最近在处理SharePoint Office365的相关开发的时候发现了这样一个奇怪的现象:

无法通过API更新Editor field,只要已更新就会throw Exception,由于是Office365的Exception,无法单单从Exception中分析出问题原因,而且奇怪的是新创建的List也存在同样的问题。

试了半天也没找到解决办法,单单看field的SchemaXml也没发现什么比较特殊的地方。

无奈之下save了一个list template,上传到本地的SharePoint 2013环境,通过这个list template 新建了一个list,发现这样的list也存在相同的问题,仅通过Exception也没分析出什么问题,但是既然到本地了,我们可以看SharePoint Log啊,果然,在SharePoint Log中发现了一可疑的Error:

System.Data.SqlClient.SqlException (0x80131904): Parameter ‘@tp_Editor‘ was supplied multiple times.

经过在网上漫长的搜索,总算找到了个比较靠谱的答案:

http://help.share-gate.com/article/663-problem-with-the-sharepoint-database

通过进一步研究发现,产生该问题实际上是因为这个builtin的field被我们自己修改过,导致产生了version,进而导致在update时与默认的builtin column的SQL 更新字段即TP_Editor冲突,导致产生了这个问题。

对于SharePoint 2013来说,比较好的解决方案并不是像链接上所说了修改这个builtin column的schemaXML,而是应该将这个field的修改给revert回原来的状态,即调用下面一个方法:

spField.RevertCustomizations()

将field revert回去,这样再看field的schemaXMl就会发现燕来xml中的version attribute 就没有了

以上是关于SharePoint "System.Data.SqlClient.SqlException (0x80131904): Parameter '@someColumn' wa的主要内容,如果未能解决你的问题,请参考以下文章

sharepoint 迁出文档时报错:sharepoint 服务器错误:the file "xxxxxxxxx" is not checked out

SharePoint字段验证程序

使用SharePoint中的URL杂散性

从Sharepoint 2010中删除“我喜欢”和“标记”以及“注释”图标

怎么获取sharepoint的版本

劫持sharepoint列表窗体上的提交或保存按钮以重定向