读书人

xml db中某个获特定字段取list中looku

发布时间: 2012-02-15 12:09:44 作者: rapoo

xml db中某个获特定字段取list中lookup字段里面每个数据各自对应的id
问题背景描述 :list1 和list2 是来自两台服务器上的sharepoint2010 list.我需要把list1中的 “Levelold”column中的数据更新到list2中的“Level”column. 但是list2上这个“Level”是Lookup 类型的,lookup到一个名为“Level”的list,这个Level list 中只有一个 Title column.这里面包含“Levelold”column 的所有数据。 我用VS2010 在list2上我做了一个装有button 控件的webpart,我已经通过调用sharepoint 中webservice 方法获取了list1中的数据,是XML 格式的数据。

问题: 怎么样用XML db中的“ows_Levelold”的数据值到list2中找出与之相对应的值的id. 然后通过id 在List2 的Lvel column 中把 list1 中的Levelold 中的数据同步过来。 在调试中始终没有更新过来。

以上描述,应该是很清楚了,我是初学sharepoint2010,我把我写的代码片段附加在后面。希望能得到各位大侠们的指导和帮助!【求代码 ,代码能写的越详细越好!】
foreach(System.Xml.XmlNode listItem in nlist)
{
str = listItem.Attributes["ows_Level"].Value + listItem.Attributes
}

SPList levelList;
SPQuery Levelquery = new SPQuery();
Levelquery.Query = string.Concat("<Where><Eq>",
"<FieldRef Name='Title'/>",
"<Value Type='Text'>" + listItem.Attributes["ows_Levelold"].Value + "</Value>",
"</Eq></Where>");

SPListItemCollection items = levelList.GetItems(Levelquery);
if (items.Count > 0)
{
SPFieldLookupValue parentConfigurationItemValue = new SPFieldLookupValue(Convert.ToInt32(items[0]["ID"]), listItem.Attributes["ows_Levelold"].Value);
myDestinationListItem["Level"] = parentConfigurationItemValue;

}


[解决办法]
list1中的字段是什么类型?如果是文本之类的类型,只需要把你拿到的XML逐个在list2所在服务器的Level那个list逐个添加数据即可。
[解决办法]
我说下我的思路吧,不用写代码。
你的代码太乱了,看半天没看懂。。。
1.将list1导出到excel中。
2.将Levelold列筛选成唯一值,并从0开始编号。
3.将Levelold唯一值按顺序添加到Level list中。
4.一项一项替换excel表list中的levelold值为序号。
5.将list2中数据替换成list1中的数据。
这种方案适合Levelold值较少的情况。数据太多就不太适合了,还是老老实实写代码吧。你再查查语法,好像你代码的思路不太对。反正我没看明白。
[解决办法]
思路没错,但是代码有问题。
我现在没有调试环境,我也不好跟你说。
你研究研究吧,这么做肯定是可以实现的,再推敲下代码。
[解决办法]
在你数据获取到了之后,还需要的操作应该分两部分吧?
一是找对应的关联,即找到目标ListItem的ID
二是对item进行更新
你是哪步的问题?我没看出来

读书人网 >行业软件

热点推荐