使用返回 DataTable 的 XML Web 服务时出现问题

转载 2004年08月04日 20:55:00

使用返回 DataTable 的 XML Web 服务时出现问题适用于

本文的发布号曾为 CHS306134

症状

在 XML Web 服务从它的一个 Web 方法返回 DataTable 的情况下,如果您浏览到该 XML Web 服务的 URL,可能会出现下面的错误消息:
System.Data.DataRelation 无法序列化,因为它不具有默认的公共构造函数。
当您尝试在 Visual Studio .NET 集成开发环境 (IDE) 中设置对该 XML Web 服务的 Web 引用时,也可能看到类似下文的错误消息:
内部服务器错误。 无法请求“http://localhost/Webservice1/Service1.asmx?WSDL”。 服务器响应了错误代码“ProtocolError”。

原因

DataTableDataRowDataView DataViewManager 对象无法序列化并且无法从 XML Web 服务返回。 若要使返回结果比完整的 DataSet 少,必须将要返回的数据复制到一个新 DataSet 中。

解决方案

若要解决此问题,应返回 DataSet 而不应返回 DataTableDataSet 对象可以包含一个或多个 DataTable 对象。

状态

这种现象是设计使然。

更多信息

重现问题的步骤

备注 : 我们为 Visual Basic .Net 和 Visual C# .Net 提供了代码示例。
  1. 将返回 DataTable 的 Web 方法添加到现有的 XML Web 服务。 下面的代码创建与 Microsoft SQL Server 数据库的连接并检索 Authors 表。 如果您要使用该代码,请对它进行修改以连接到您的 SQL Server 计算机。
    
    
  2. 下面的代码创建与 Microsoft SQL Server 数据库的连接并检索 Authors 表。 如果您要使用该代码,请对它进行修改以连接到您的 SQL Server 计算机。编译 XML Web 服务。
  3. 下面的代码创建与 Microsoft SQL Server 数据库的连接并检索 Authors 表。 如果您要使用该代码,请对它进行修改以连接到您的 SQL Server 计算机。浏览到刚才添加了代码的 XML Web 服务的 URL。 注意,将会出现错误消息。
  4. 下面的代码创建与 Microsoft SQL Server 数据库的连接并检索 Authors 表。 如果您要使用该代码,请对它进行修改以连接到您的 SQL Server 计算机。如下所示修改代码以返回 DataSet 而不返回 DataTable
    
    
  5. 下面的代码创建与 Microsoft SQL Server 数据库的连接并检索 Authors 表。 如果您要使用该代码,请对它进行修改以连接到您的 SQL Server 计算机。编译 XML Web 服务。
  6. 下面的代码创建与 Microsoft SQL Server 数据库的连接并检索 Authors 表。 如果您要使用该代码,请对它进行修改以连接到您的 SQL Server 计算机。浏览到刚才添加了上述代码的 XML Web 服务的 URL。 注意,此次不会出现错误消息。

Android学习之——(3)项目中的WebService返回数据处理学习

接上一篇http://blog.csdn.net/fu222cs98/article/details/21554339 在项目中通过WebService调用服务端方法,服务端采用C#编写,当初公司项目...
  • fu222cs98
  • fu222cs98
  • 2014年03月19日 21:12
  • 2689

WEB端应该使用DataTable/DataSet吗?

有一次和同事讨论起具体的技术细节,同事说不要用什么实体类,从数据库访问到的数据,直接用DataTable、DataSet 就好。理由是,从获取到的数据集转换成实体类,有一定的性能损耗。呵呵,性能。我们...
  • leftfist
  • leftfist
  • 2015年05月03日 19:24
  • 1546

WebApi返回Xml和返回json处理方法

webApi可以返回json、xml和自定义string字符串,本文我们不讨论返回string字符串。 一、全局都只能返回一种类型Xml或者json 1、返回xml,当我们新建一个webapi项目...
  • for12
  • for12
  • 2015年10月22日 11:10
  • 1655

使用HTTPie测试Web服务

flask web 开发 P1681.问题(venv) C:\Users\Geek Lee\flasky>http --json --auth 123456789@qq.com:password GE...
  • GeekLeee
  • GeekLeee
  • 2016年09月05日 21:52
  • 1075

DataTable和Xml互相转化

需求 Sql表查询得到的DataTable要转化成XML,就顺便写个测试的例子, 实现的功能 利用反射实现了DataTable,实体对象,XML的互转。 达到的效果 Code: sql ...
  • s10141303
  • s10141303
  • 2015年09月13日 20:35
  • 3240

WebService技术总结(三):项目实战——使用XML,dom4j,Xpath实现远程调用

XML具有跨平台性,在企业webservice开发中, 经常将请求参数封装为XML,并且返回一个XML作为结果。需求: 客户端将发票号码,发票代码作为条件,调用服务端,查询金额,税额信息客户端请求参数...
  • yj7758423
  • yj7758423
  • 2016年12月22日 18:33
  • 556

在DataTable中查询应该注意的问题 (DataTable.select)

【简 介】 完成一个查询,返回一个DataTable后,很多时候都想在查询结果中继续搜索。这时可以使用DataTable.Select方法对结果进行再查询。 Select方法有4个重载,我...
  • yeeonefx
  • yeeonefx
  • 2014年10月21日 08:46
  • 1938

开发整理-jquery datatable插件问题总结

近日使用到了jquery的datatable插件作为页面分页列表,踩了不少坑,整理记录一下。         首先,创建table的方式有两种,一种是DataTable,还有一种是小写开头的dataT...
  • wojiushiwo945you
  • wojiushiwo945you
  • 2016年07月17日 08:19
  • 2034

XML与HTML的关系

看完XML视频已经有一段时间了,一直没有抽空总结,感觉麦子都要荒到地里了,今天想起来,还是把它收回来吧,能捞多少捞到少吧!         之前我一直弄不明白,XML和HTML到底有什么区别,感觉都...
  • u013034286
  • u013034286
  • 2015年09月16日 21:18
  • 1085

C# DataTable导出XML文件。

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin...
  • y306237357
  • y306237357
  • 2014年01月22日 10:49
  • 505
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用返回 DataTable 的 XML Web 服务时出现问题
举报原因:
原因补充:

(最多只允许输入30个字)