使用Web服务返回记录集

时间:2011-02-22 20:52:35

标签: c# sql-server web-services asp-classic

如何在C#中返回记录集?这些记录是从SQL Server检索的。默认情况下,Web服务使用XML - 我不希望这样。我希望它将它作为记录集返回。这些值将由ASP classic使用。

5 个答案:

答案 0 :(得分:3)

您无法返回记录集。并且您的.NET类型都不会与经典ASP兼容。您只需要从XML读取数据。理解XML模式并使用Microsoft.XMLDOM来解析数据。

答案 1 :(得分:2)

除了解析XML响应之外,您无法通过任何其他方法在Classic ASP中提取ASP.NET WebService。

以下链接提供了有关如何利用MS SOAP Toolkit使您更轻松的一些信息:http://www.4guysfromrolla.com/webtech/070302-1.shtml

答案 2 :(得分:1)

您可以将DataTable转换为ADO记录集。这是一些代码的链接。 http://chiragrdarji.blogspot.com/2007/02/converting-dataset-into-recordset.html 我没有测试过代码,但从它的外观来看,它应该可行。

如果从c#app返回记录集com对象时遇到问题,可以使用Recordset.Save将记录集转换为xml并指定adPersistXML http://msdn.microsoft.com/en-us/library/ms681501%28v=VS.85%29.aspx

然后,您将拥有一个ado记录集的xml字符串表示形式,您可以将其从c#app返回到经典ASP。您的ASP应用程序应使用recordset.Open与xml作为参数加载到记录集。 http://msdn.microsoft.com/en-us/library/ms675544%28v=VS.85%29.aspx

修改1 以下是实现这一目标所需采取的步骤。

在C#web-service

  1. 连接到数据库并获取DataSet
  2. DataTable的{​​{1}}转换为DataSet
  3. Recordset转换为xml字符串。
  4. 将字符串返回给客户端。
  5. 在客户端

    1. 创建Recordset对象。
    2. 使用从Web服务返回的字符串加载Recordset

答案 3 :(得分:1)

SOAP Web服务返回XML。这是他们唯一可以回归的东西。周期。

(对于nitpickers,是的,WCF可以创建返回JSON或二进制文件的Web服务,但是经典ASP的运气比使用XML要少。)

答案 4 :(得分:-1)

ado可以使用xml作为源。

Microsoft OLE DB Simple Provider

http://msdn.microsoft.com/en-us/library/ms810621