1、第三方用VB6.0调用我的webservice(C#写的),VB6.0调用webservice时提供RecordSet;ADODB.Recordset(在.net下的adodb命名空间下)是接口类型,而webservice参数(输入/返回)类型不支持不可序列化的类型。
请问这种情况怎么处理?哪位给点思路!谢谢!如果webservice中方法接收ADODB.Recordset类型参数[WebMethod]
        public DataSet SetRecordSetInfo(ADODB.Recordset rs)
        {
            //do something transform ado recordset to ado.net dataset        }
IE访问webservice报错
无法序列化接口 ADODB.Recordset。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.NotSupportedException: 无法序列化接口 ADODB.Recordset。2、ado Recordset和ado.net dataset之间怎么相互转换?也就是说ado Recordset数据怎么转换为ado.net dataset中的数据。

解决方案 »

  1.   

    这个你得去查vb6的说明书了,还用vb6啊?
      

  2.   

    我们的客户使用vb6.0,调用我的webservice,提供Recordset。
      

  3.   

    是啊  你得去查DataSet映射到VB6里面,是怎么表示的啊!?
      

  4.   

    或者VB6传入的数据在dotnet里面是怎么表示的啊?
      

  5.   

    把RecordSet转化成可序列化的类,比如自定义的类
      

  6.   

    vb6.0不熟,但是我知道vb6.0中数据库编程用的是Recordset,.net中adodb命名空间下也有adodb.Recordset接口..
      

  7.   

    ado Recordset对象应该和ado.net DataSet对象对应吧
    Recordset是非类型的,意思是它把每个数据作为variant变量来存储。然而,DataSet是强类型的,它把数据按照原来的类型存储。强类型意味着更规范的编程方式和减少错误。DataSet是基于xml的,提供查询、排序等,支持各种数据源..
    而Recordset数据与数据源有关
      

  8.   

    从ADO 2.5起,Recordset对象完全支持Persistance到XML格式,但是这依赖于Microst XML Parser,也就是msxml.dll,它从IE5开始提供。Recordset对象还可以Persistance到任何实现了IStream接口的对象,并且ADO 2.5还提供了Stream对象。因此,ADO 2.5的Recordset可以直接Persistance到IIS5(Windows 2000绑定)的ASP Response/Request对象,以及XML格式的文件或流。
    一般你的机器要是XP的话,都是ADO2.5以上了。而且装了.net后,就是ADO2.8了。
    你可以使用Recordset.Save方法,将记录集存为XML文件(不必是文件,可以是内存中的XML),然后将此XML传给Web Service。在Web Service端,再用Recordset.Open将XML还原成Recordset的记录集,后面的事情不就好办了吗?
    具体将Recordset记录集序列化和反序列化XML的方法,请看MSDN中关于ADO的帮助。