Service 如何才能返回 DataTable和使用DataTable作为方法的参数,急...搞定就结贴

bluemoon0001 2007-02-05 05:04:09
我想用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可以调用吗?
...全文
325 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
cengyidao 2007-02-06
  • 打赏
  • 举报
回复
呵呵
bluemoon0001 2007-02-06
  • 打赏
  • 举报
回复
不好意思,分给错了,有位兄弟没有给分,晕啊。
weiyong922 2007-02-05
  • 打赏
  • 举报
回复
只能用DataSet来返回
wd8888 2007-02-05
  • 打赏
  • 举报
回复
//可以参考
[WebMethod]
public DataSet GetTicketsByTrainNumber(string TrainNumber)
{
DataSet ds=new DataSet();
SqlDataAdapter DA=new SqlDataAdapter("Select * From Tickets Where Train_number='"+TrainNumber+"'",Conn);
DA.Fill(ds,"Tickets");
if(ds.Tables[0].Rows.Count>0)
return ds;
else
return null;
}
bluemoon0001 2007-02-05
  • 打赏
  • 举报
回复
to: cengyidao(曾一刀)
谢谢,我那天做没有办法就返回了DataSet 和用 DataSet 作参数的。
现在知道可以就放心了,呵呵。

to:hertcloud
我现在用的是1.1

谢谢以上三位,我现在试着看看可不可以通过实现那个什么鬼接口来搞定,最迟明天结贴,我刚才在网上搜了,也没有什么具体的方法,都是提议用DataSet来返回。
cpp2017 2007-02-05
  • 打赏
  • 举报
回复
返回DataSet,然后从DataSet中取表. DataTable不能序列化成xml.
hertcloud 2007-02-05
  • 打赏
  • 举报
回复
.net 1.1??

那么需要 返回 DataSet.

或者 自己定义可以 序列化 的对象集
cengyidao 2007-02-05
  • 打赏
  • 举报
回复
jsp可以调用DataSet类型的.
可以返回DataSet类型.
mincunbao 2007-02-05
  • 打赏
  • 举报
回复
建议返回DataSet,返回后再放到table中

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧