Как я могу вернуть набор записей в C #?Эти записи извлекаются с сервера SQL.Веб-сервисы по умолчанию используют XML - я этого не хочу.Я хочу, чтобы он возвращал его как набор записей.Эти значения будут использоваться ASP classic.
Вы не можете вернуть набор записей. И ни один из ваших типов .NET не будет совместим с классическим ASP. Вам нужно только читать данные из XML. Поймите схему XML и используйте Microsoft.XMLDOM для анализа данных.
Microsoft.XMLDOM
Вы не сможете использовать ASP.NET WebService в Classic ASP с помощью любого другого метода, кроме анализа XML-ответа.
Следующая ссылка содержит некоторую информацию о том, как воспользоваться MS SOAP Toolkit, чтобы упростить вам эту задачу: http://www.4guysfromrolla.com/webtech/070302-1.shtml
SOAP веб-сервисы возвращают XML.Это единственное, что они могут вернуть.Точка.
(да, для придурков да, WCF может создавать веб-службы, которые возвращают JSON или двоичные файлы, но Classic ASP будет меньше везет с теми, что с XML).
Вы можете преобразовать DataTable в набор записей ADO.Вот ссылка на некоторый код, который делает это.http://chiragrdarji.blogspot.com/2007/02/converting-dataset-into-recordset.html Я не проверял код, но, судя по всему, он должен работать.
DataTable
Если у вас возникли проблемы с возвратом объекта набора записей com из приложения c #, вы можете преобразовать набор записей в xml с помощью Recordset.Save и указать adPersistXML http://msdn.microsoft.com/en-us/library/ms681501%28v=VS.85%29.aspx
com
После этого у вас будет xmlстроковое представление набора записей ado, которое можно вернуть из приложения c # в классический ASP.Ваше приложение ASP должно использовать recordset.Open с xml в качестве аргумента для загрузки в набор записей.http://msdn.microsoft.com/en-us/library/ms675544%28v=VS.85%29.aspx
Редактировать 1 Вот шаги, которые необходимо предпринять, чтобы это произошло.
В веб-сервисе C #
DataSet
Recordset
На клиенте
ado может использовать xml в качестве источника.
Простой поставщик Microsoft OLE DB
http://msdn.microsoft.com/en-us/library/ms810621