首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 企业软件 > 行业软件 >

xml db中某个获特定字段取list中lookup字段里面每个数据各自对应的id解决办法

2012-02-15 
xml db中某个获特定字段取list中lookup字段里面每个数据各自对应的id问题背景描述 :list1 和list2 是来自

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进行更新
你是哪步的问题?我没看出来

热点排行