调用WebService方法,报错:无法序列化 DataTable。未设置 DataTable 名称。

错误信息如下:WebService方法如下:方法一:把DataTable转成了DataSet,但是还是报如上图的错[WebMethod]publicDataSetget_... 错误信息如下:

WebService方法如下:
方法一:把DataTable转成了DataSet ,但是还是报如上图的错

[WebMethod]
public DataSet get_report_data_ds(string strName_rpt, rptInput_info pInput)
{
DataTable dt = new DataTable();
dt.TableName = "dtReport1";
Fill_Report c_Report = new Fill_Report(0);
dt = c_Report.get_report_data(strName_rpt, pInput);//该方法返回的是DataTable
DataSet ds = new DataSet("dsDefault");
ds.Tables.Add(dt);
return ds;
}

方法二:把DataTable转成了XML,调用时也报如上图的错
[WebMethod] public string get_report_data_xml(string strName_rpt, rptInput_info pInput)
{
DataTable dt = new DataTable();
dt.TableName ="dtReport";
Fill_Report c_Report = new Fill_Report(0);
dt = c_Report.get_report_data(strName_rpt, pInput);//该方法返回的是DataTable
return CDataToXml(dt);//该方法是把dt转换成XML
}
/// <summary> /// 将DataTable对象转换成XML字符
/// </summary>
/// <param name="dt"></param>
/// <returns></returns>
public static string CDataToXml(DataTable dt)
{
……
这是调用get_report_data_xml方法报的错
展开
 我来答
youbl
2013-04-18 · TA获得超过2510个赞
知道大有可为答主
回答量:1844
采纳率:62%
帮助的人:1677万
展开全部
错误已经说的很清楚了,不支持DataTable的序列化,
也就是说,WebService不能返回DataTable

然后你说返回string,还报上面的错,那不可能的,应该是你没有编译吧
追问
我那两个方法,第一个返回的是DataSet,第二个返回的是xml字符,关于这一点,看我上面代码的返回类型就知道了,没有返回DataTable的。那个XML的方法也编译过了。
追答
你的 rptInput_info 类里是不是有DataTable的属性?

另外,你可以考虑用WCF来代替WebService
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bxfc
2013-04-18 · TA获得超过872个赞
知道小有建树答主
回答量:1104
采纳率:0%
帮助的人:686万
展开全部
...你去给DataTable个TableName就行了...上面写的不是很清楚么
想序列化DataTable,这个DataTable需要有名字的。
DataSet其实就是DataTable的集合,同理。
更多追问追答
追问
我上面贴的代码,已经是把DataTable和DataSet设置名字了
追答
你的名字可以后给么?你在Get方法里面已经改变这个对象了,这个你可明白?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
z_blue_b
2013-04-18 · TA获得超过199个赞
知道小有建树答主
回答量:279
采纳率:0%
帮助的人:298万
展开全部
datatable不支持序列化,直接返回到dataset吧。
追问
方法一的返回值本来就是dataset,不是datatable。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
leanore
2013-04-18 · 超过20用户采纳过TA的回答
知道答主
回答量:79
采纳率:100%
帮助的人:49.4万
展开全部
类DataTable 加上implements Serializable,希望对你有用~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友9a07606
2013-04-18
知道答主
回答量:16
采纳率:0%
帮助的人:9.7万
展开全部
你没有设置table的名称
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式