none
从多行文本类型栏目读取保存的数据时,有时会出现数据不完整现象,为什么会出现这种情况?帮忙看看,谢谢! RRS feed

  • 问题

  • 您好!

              我的moss 2007中有一文档库,该库中有一类型为多行文本且无限制长度的栏目。该栏目保存datatable xml序列化后的数据。用自定义的asp.net页面来管理数据的增,删,改操作。问题出现在编辑页面。在编辑页面的首次加载时信息还是完整的,但当我点击提交按钮时,偶尔会出现数据丢失的现象。我在页面首次加载时读取xml数据并记入日志中,而在提交时的最开始阶段再次读取该xml数据写入日志。如果读取出来的xml数据不能反序列化成datatable成功,则中断处理过程。从日志中比较发现,首次加载时数据是完整的,但提交阶段时读取的数据有时是不完整的。但更奇怪的问题是,根据我的程序逻辑,数据不完整时,中断处理,我根本就没有保存数据,但库中的该条记录中数据还是被更改了,且内容就是提交阶段时读取出来的数据。而且这种现象也是偶尔才发生的,大部分时间都是正常的。

    为什么同一条记录,在没有更新数据的情况下,两次读取的数据会不一致,而且第二次读取的数据会自动更新到库中,我根本就没调用item.update()方法呀!

    2011年2月18日 2:01

全部回复

  • 数据不完整这种现象,我不清楚。

    后面一个,有一种可能性,就是sharepoint第一次纯富文本的时候是用小写的<div></div>存储中间内容的,读出来以后,会变成大写的<DIV></DIV>,这个时候如果你更新,虽然你感觉内容没变,实际却是变了。

    你可以考虑加上这个逻辑判断。

    具体可以参考我在这里的讨论:http://social.technet.microsoft.com/Forums/en/sharepointadmin/thread/c995f8c8-d86a-4310-ae99-1156b6347cd1


    上善若水
    Lambert Qin | 博客(Blog): SharePoint in My Eyes 中文 / 英文 | LinkedIn
    2011年2月21日 15:37
  • 秦磊,感谢您的回复!不过我面临的问题是这样的:

    首先,我的表单页面不是使用sharepoint自带的,而是自己开发的asp.net页面嵌入sharepoint中,使用的是。net的服务器端控件。

    其次,我保存到多行文本栏目的内容是纯文本的且设置为无长度设置。保存的到栏目的数据是通过后台代码执行生成的xml字符串数据,不存在与富文本控件交换的问题。

    比如我实现一个保存每个用户的审批意见到该多行文本栏目功能。所以我先将datatable序列化成xml数据保存到该栏目。在新增后,查看该栏目的内容,这时xml数据是完整的。

    进入编辑页面时,首先我会去读取该栏目的数据,这时查看栏目内容,数据也还是完整的。我在页面上有一保存按钮,点击保存时我会再次读取该栏目的信息(后面还有一些处理逻辑,未来排除错误注释掉了),问题出现了,这时再去查看栏目信息,发现栏目的信息变得不完整了,且这时的数据内容如下

    <?xml version='1.0' encoding='utf-8' ?>

    <NewDataSet>

      <xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">

        <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata

    在对象模式中splistitem,要调用update()方法才会更新该项目的数据不是吗?可是我并没有调用update()方法来保存数据啊。最最奇怪的是,这个问题不是每次都出现的。几个星期出现一次。这是怎么回事啊?

    2011年2月22日 3:40