在前一篇中,我简单的介绍了如何用web service在一个list中创建一个新的item.既然我们可以创建新的item,必然也要可以删除和修改item.其实删除和修改item的代码极为相识,大家一看便知.

    batch.InnerXml = "<Method ID='1' Cmd='Update'>" +  
       
"<Field Name='ID'>New</Field>" +  
       
"<Field Name='Title'>Something</Field>" +  

       "<Field Name='SomeField'>Something Else</Field></Method>";

   我只是将不一样的地方帖了出来,只有一个地方不一样,那就是Cmd的属性值发生了变化,从New变为了Update.但是要注意的是,ID这个Field是一定要存在的,如果不存在是找不到你想要的唯一的Item,剩下的Field就是你想修改的Field的值了.

    batch.InnerXml = "<Method ID='1' Cmd='Delete'>" +  

       "<Field Name='ID'>New</Field>" +  </Method>";

   Delete就更简单,只需要要提供你想delete的item的ID就可以.

  最后还是友情提示一下,这些操作完成后,会返回一段XML,里面有个Node标记着是否成功,这个可以用在判断操作是否成功.因为对于这个操作来说,有些情况会抛Exception,有些情况,它错了就是错了,操作不会完成,没有Exception,只会给你返回一个错误信息的XML.

posted @ 2009-04-26 21:38 jdxyw 阅读(291) 评论(0) 编辑

  好久都没有写文章了,手都生了,最近的一个项目,是在客户端Winform访问MOSS,所以用到了web service,所以最近总是跟这东西打交道,不过也学到了一些东西,也来跟大家分享一下.今天就写一个如何往list添加一个新的item.

  首先,不用说,先在Visual Studio中添加一个web reference http://yourserver/yoursite/_vti_bin/lists.asmx. 友情提示一下:如果平常对加这种reference不是很有经验的朋友请注意了,在2005和2008 是有点不同的,在2005中就是直接加就可以了,在2008是一个加service reference,你右键Add reference后,再点左下角的Advance,要在这里面加,先前的是WCF的.

     接下来是重要的一步.其中的Url要记得,是设置在你要操作的list所在的site,因为具我多次观察,在你add web reference的时候,无论你写成什么要,他最后都会给你改成http://server/_vti_bin/lists.asmx. 认证模式也别忘了,这个是使用你当前的登录名,是在域环境下的.

    YourWebService.Lists myList = new ReferenceToWebService.Lists();  
    myList.Credentials 
= System.Net.CredentialCache.DefaultCredentials;  

    myList.Url = "http://yourserver/你的list所在的site/_vti_bin/lists.asmx";

   准备工作做完了,就是开始动真格的了:下面的代码是MSDN找来的,应该是很清楚明白了,就是有两点我想友情提示的.1,用LINQ TO XML来做这些的话,会很爽的.2.Field name一定要用内部名,如果用Dispaly name的话,会出错,出错它不会抛异常,但是你可以在返回的XmlNode里面看到错误代码.谢谢观赏!下次再见

Code

 



posted @ 2009-04-26 12:43 jdxyw 阅读(406) 评论(0) 编辑