在前一篇中,我简单的介绍了如何用web service在一个list中创建一个新的item.既然我们可以创建新的item,必然也要可以删除和修改item.其实删除和修改item的代码极为相识,大家一看便知.
"<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的值了.
"<Field Name='ID'>New</Field>" + </Method>";
Delete就更简单,只需要要提供你想delete的item的ID就可以.
最后还是友情提示一下,这些操作完成后,会返回一段XML,里面有个Node标记着是否成功,这个可以用在判断操作是否成功.因为对于这个操作来说,有些情况会抛Exception,有些情况,它错了就是错了,操作不会完成,没有Exception,只会给你返回一个错误信息的XML.
好久都没有写文章了,手都生了,最近的一个项目,是在客户端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. 认证模式也别忘了,这个是使用你当前的登录名,是在域环境下的.
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里面看到错误代码.谢谢观赏!下次再见