C#高级编程:会议登记 Web服务
2009-04-14 08:25:04 来源:WEB开发网最后,返回queryResult,以便让客户知道查询是否成功:
[WebMethod]
public int AddEvent(String eventName, String eventRoom,
String eventAttendees, String eventDate)
{
...
return queryResult;
}
至此,就完成了Web服务的所有工作,如同以前,可以对Web服务进行测试,测试的方法就是把Web浏览器指向.asmx文件,这样,不用编写任何客户机代码,就可以添加记录,查看由GetData()返回的DataSet的XML表示。
在继续之前,需要讨论DataSet对象和Web服务的组合使用。初看起来这似乎是交换数据的一种荒谬方式,而实际上这是一种极其有用的技术。
DataSet类的用途非常广泛,如果查看为GetData()方法生成的WSDL,就会看到如下内容:
<s:element FTEL="GetDataResponse">
<s:complexType />
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" FTEL="GetDataResult">
<s:complexType>
<s:sequence>
<s:element ref=”s:schema” />
<s:any />
</s:sequence>
</s:complexType>
</s:element>
</s:sequence>
</s:complexType>
</s:element>
可以看出,这是非常一般的代码,允许传送进来的DataSet对象包含用内联模式指定的任何数据。但是,这表示WSDL没有完整地描述Web服务。对于.NET客户这不是个问题,在前面的示例中传送简单的字符串时,一切都很正常,惟一的区别是我们交换了一个DataSet对象。但是,非.NET客户必须提前了解要传送的数据,或者某个等价的DataSet类,才能访问数据。
这个问题的解决方法是把数据重新封装为另一种格式,例如结构数组。但是,这里使用DataSet对象不会出问题,而且还可以大大简化其他代码。
相关阅读:
C#高级编程:定制日历控件
C#高级编程:给数据库添加会议数据
C#高级编程:数据绑定深入理解
C#高级编程 多种方式读写文本文件
更多精彩
赞助商链接