当前位置: 代码迷 >> ASP.NET >> Service 怎么才能返回 DataTable和使用DataTable作为方法的参数,搞定就结贴
  详细解决方案

Service 怎么才能返回 DataTable和使用DataTable作为方法的参数,搞定就结贴

热度:8642   发布时间:2013-02-26 00:00:00.0
Service 如何才能返回 DataTable和使用DataTable作为方法的参数,急...搞定就结贴
我想用DataTable来返回数据,我写了一下如下的方法来测试,结果返回后面的错误

[WebMethod]
public   DataTable   HelloWorld()
{
DataTable   ResultTable   =   new   DataTable( "msgTable ");
ResultTable.Columns.Add( "Content ",typeof(string));
ResultTable.Rows.Add(new   object[]{ "HelloWorld "});
return   ResultTable;
}

错误:


    类型   System.ComponentModel.ISite   的成员   System.ComponentModel.MarshalByValueComponent.Site   是接口,因此无法将其序列化。  
说明:   执行当前   Web   请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。  

异常详细信息:   System.NotSupportedException:   类型   System.ComponentModel.ISite   的成员   System.ComponentModel.MarshalByValueComponent.Site   是接口,因此无法将其序列化。

源错误:  

执行当前   Web   请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。    

堆栈跟踪:  


[NotSupportedException:   类型   System.ComponentModel.ISite   的成员   System.ComponentModel.MarshalByValueComponent.Site   是接口,因此无法将其序列化。]
      System.Xml.Serialization.TypeScope.ImportTypeDesc(Type   type,   Boolean   canBePrimitive,   MemberInfo   memberInfo)
      System.Xml.Serialization.TypeScope.GetTypeDesc(Type   type,   MemberInfo   source,   Boolean   directReference)
      System.Xml.Serialization.TypeScope.GetTypeDesc(Type   type,   MemberInfo   source)
      System.Xml.Serialization.StructModel.GetPropertyModel(PropertyInfo   propertyInfo)
      System.Xml.Serialization.StructModel.GetFieldModel(MemberInfo   memberInfo)
      System.Xml.Serialization.XmlReflectionImporter.ImportStructLikeMapping(StructModel   model,   String   ns)
      System.Xml.Serialization.XmlReflectionImporter.ImportStructLikeMapping(StructModel   model,   String   ns)
      System.Xml.Serialization.XmlReflectionImporter.ImportTypeMapping(TypeModel   model,   String   ns,   ImportContext   context,   String   dataType,   Boolean   repeats)

[InvalidOperationException:   反射类型“System.Data.DataTable”时出错。]
      System.Xml.Serialization.XmlReflectionImporter.ImportTypeMapping(TypeModel   model,   String   ns,   ImportContext   context,   String   dataType,   Boolean   repeats)
      System.Xml.Serialization.XmlReflectionImporter.ImportTypeMapping(TypeModel   model,   String   ns,   ImportContext   context,   String   dataType)
      System.Xml.Serialization.XmlReflectionImporter.ImportAccessorMapping(MemberMapping   accessor,   FieldModel   model,   XmlAttributes   a,   String   ns,   Type   choiceIdentifierType)
      System.Xml.Serialization.XmlReflectionImporter.ImportMemberMapping(XmlReflectionMember   xmlReflectionMember,   String   ns,   XmlReflectionMember[]   xmlReflectionMembers)
      System.Xml.Serialization.XmlReflectionImporter.ImportMembersMapping(XmlReflectionMember[]   xmlReflectionMembers,   String   ns,   Boolean   hasWrapperElement
 
----------------------------------
请问如何才能返回DataTable类型。


用DataSet   倒是可以返回,但是返回DataSet这样的数据类型,jsp可以调用吗?

------解决方案--------------------------------------------------------
建议返回DataSet,返回后再放到table中
  相关解决方案