2011-02-22 228 views
1

如何才能返回C#中的记录集?这些记录从SQL服务器中检索。默认情况下,Web服务使用XML - 我不希望这样。我希望它将它作为记录集返回。这些值将被ASP经典使用。使用Web服务返回记录集

+2

你是什么意思RecordSet的,像经典的ADO记录集?我甚至不确定这是否可以在C#中使用。 – darren 2011-02-22 21:27:30

回答

3

您无法返回记录集。而且你的.NET类型都不能与传统的ASP兼容。您只需要从XML中读取数据。了解XML模式并使用Microsoft.XMLDOM解析数据。

+0

感谢您的信息。我是.NET和webservice的新手,因此确实有助于澄清(非)可能性。 – m0g 2011-02-24 14:28:41

2

您无法通过除解析XML响应之外的任何其他方法来获取Classic ASP中的ASP.NET WebService。

下面的链接有关于如何利用MS SOAP工具包的一些信息,以使这更容易为你:http://www.4guysfromrolla.com/webtech/070302-1.shtml

+0

nooo,尽可能快地从SOAP中跑出来 – 2011-02-23 03:51:39

+0

@Eduardo,解释一下,不要惊呼。 – 2011-02-23 10:02:19

+0

@John:对不起,刚刚回忆起与SOAP合作的痛苦日子,并急切地呼吁急需。 – 2011-02-23 11:16:44

1

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

如果无法从你的C#应用​​程序返回记录集对象com可以转换记录使用Recordset.Save到XML和指定adPersistXML http://msdn.microsoft.com/en-us/library/ms681501%28v=VS.85%29.aspx

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

编辑1 以下是你需要采取来实现这一目标的步骤。

在C#Web服务

  1. 连接到数据库并获取DataSet
  2. DataSetDataTable转换为Recordset
  3. Recordset转换为xml字符串。
  4. 将字符串返回给客户端。

在客户端

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

-1:他试图从Web服务中返回它。 – 2011-02-23 01:41:02

+0

@John Saunders也许我的描述有点不清楚。通过网络服务来做到这一点是可能的。我已经更新了我的答案。如果你仍然不认为这会起作用,请让我知道问题是什么。 – 2011-02-23 09:55:07

+1

他说,“Web服务默认使用XML - 我不希望这样”。 – 2011-02-23 10:00:40

1

SOAP Web服务返回XML。这是他们唯一可以回报的事情。期。 (对于nitpickers,是的,WCF可以创建返回JSON或二进制文件的Web服务,但经典ASP与使用XML的运行相比会少一些)。

+0

你没有帮助。这个人需要一个解决方案而不是字面解释。创造性思考。 – Dee 2011-02-23 20:19:24

+0

@Dee:该人员需要解释他的问题与XML有关。我的解释是为了避免使用XML而绝对“停止”,这样他就应该停下来思考他真正需要的是什么。 – 2011-02-23 20:25:39

-1

ado可以使用xml作为源代码。

微软OLE DB简单提供

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

+0

-1,他说:“Web服务默认使用XML - 我不想这样” – 2011-02-23 10:01:23

+0

您无法更改Web服务返回的内容 - 这是由Web服务控制的!您只能操作来自服务的响应。将XML作为记录集处理是一个很好的解决方案。除非你了解整个问题,否则不要标记。 – Dee 2011-02-23 20:16:51