Возврат набора записей с использованием веб-службы - PullRequest
1 голос
/ 22 февраля 2011

Как я могу вернуть набор записей в C #?Эти записи извлекаются с сервера SQL.Веб-сервисы по умолчанию используют XML - я этого не хочу.Я хочу, чтобы он возвращал его как набор записей.Эти значения будут использоваться ASP classic.

Ответы [ 5 ]

3 голосов
/ 23 февраля 2011

Вы не можете вернуть набор записей. И ни один из ваших типов .NET не будет совместим с классическим ASP. Вам нужно только читать данные из XML. Поймите схему XML и используйте Microsoft.XMLDOM для анализа данных.

2 голосов
/ 23 февраля 2011

Вы не сможете использовать ASP.NET WebService в Classic ASP с помощью любого другого метода, кроме анализа XML-ответа.

Следующая ссылка содержит некоторую информацию о том, как воспользоваться MS SOAP Toolkit, чтобы упростить вам эту задачу: http://www.4guysfromrolla.com/webtech/070302-1.shtml

1 голос
/ 23 февраля 2011

SOAP веб-сервисы возвращают XML.Это единственное, что они могут вернуть.Точка.

(да, для придурков да, WCF может создавать веб-службы, которые возвращают JSON или двоичные файлы, но Classic ASP будет меньше везет с теми, что с XML).

1 голос
/ 23 февраля 2011

Вы можете преобразовать DataTable в набор записей ADO.Вот ссылка на некоторый код, который делает это.http://chiragrdarji.blogspot.com/2007/02/converting-dataset-into-recordset.html Я не проверял код, но, судя по всему, он должен работать.

Если у вас возникли проблемы с возвратом объекта набора записей com из приложения c #, вы можете преобразовать набор записей в xml с помощью Recordset.Save и указать adPersistXML http://msdn.microsoft.com/en-us/library/ms681501%28v=VS.85%29.aspx

После этого у вас будет xmlстроковое представление набора записей ado, которое можно вернуть из приложения c # в классический ASP.Ваше приложение ASP должно использовать recordset.Open с xml в качестве аргумента для загрузки в набор записей.http://msdn.microsoft.com/en-us/library/ms675544%28v=VS.85%29.aspx

Редактировать 1 Вот шаги, которые необходимо предпринять, чтобы это произошло.

В веб-сервисе C #

  1. Подключитесь к БД и получите DataSet.
  2. Преобразование DataTable из DataSet в Recordset.
  3. Преобразование Recordset вxml string.
  4. Возвращает строку клиенту.

На клиенте

  1. Создайте объект Recordset.
  2. Загрузите Recordset со строкой, возвращенной из веб-службы.
0 голосов
/ 23 февраля 2011

ado может использовать xml в качестве источника.

Простой поставщик Microsoft OLE DB

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

...