WebService返回DataTable
http://blog.csdn.net/wxnjob/article/details/8638420
webservice返回datatable时报序列化错误
以下三种方案的实质应该都是序列化的,有一位大神说过“跨进程的不序列化应该去面壁!”O(∩_∩)O哈哈哈~
解决方案一:返回dataset
WebService中的方法代码如下:
[WebMethod]
public DataSet GetDataSet()
{
DataTable dt=new DataTable("mytable");
DataColumn dc=new DataColumn("id",typeof(string));
dt.Columns.Add(dc);
DataRow dr=dt.NewRow();
dr["id"]="1111111";
dt.Rows.Add(dr);
DataSet ds=new DataSet();
ds.Tables.Add(dt);
return ds;
}
在调用客户端直接使用DataSet
DataSet ds = db.GetDataSet();//db是服务代理类实例
GridView1.DataSource = ds.Tables[0];
GridView1.DataBind();
解决方案二:给返回的datatable命名
webservice文件中
[WebMethod]
public DataTable dt()
{
DataTable dt = new DataTable("default");
dt.Columns.Add("id");
dt.Columns.Add("name");
for (int i = 0; i < 10; i++)
{
DataRow dr = dt.NewRow();
dr["id"] = i.ToString();
dr["name"] = "name" + i.ToString();
dt.Rows.Add(dr);
}
return dt;
}
调用页面中
WebService1.WebService1 service = new WebService1.WebService1();
DataTable dt = service.dt();
gvUser.DataSource = dt;
gvUser.DataBind();
最关键的是在webservice的方法中为datatable命名,否则就会报错.
解决方案三:服务中将DataTable的序列化成xml字符串,调用时候在反序列化成DataTable
#region DataTable序列化和反序列化
/// <summary>
/// DataTableToXML
/// </summary>
public static string ConvertDataTableToXML(DataTable dt)
{
return ConvertDataTableToXML(dt, string.Empty);
}
public static string ConvertDataTableToXML(DataTable dt, string aaa)
{
StringWriter sw = null;
try
{
if (dt.TableName == string.Empty)
dt.TableName = "table1";
sw = new StringWriter();
dt.WriteXml(sw, XmlWriteMode.WriteSchema);
return sw.ToString();
}
catch (System.Exception ex)
{
throw ex;
}
finally
{
if (sw != null)
sw.Close();
}
}
/// <summary>
/// XMLToDataTable
/// </summary>
public static DataTable ConvertXMLToDataTable(string xmlData)
{
TextReader sr = null;
try
{
DataTable dt = new DataTable();
sr = new StringReader(xmlData);
dt.ReadXml(sr);
return dt;
}
catch (System.Exception ex)
{
throw ex;
}
finally
{
if (sr != null) sr.Close();
}
}
#endregion
WebService返回DataTable的更多相关文章
- WebService返回DataTable问题
今天做项目时,想在WebService中返回DataTable,在单位没成功,看网上有人说datable在.net1.1中是没有序列化的,不能直接在webservice中返回,可以返回dataset. ...
- 服务器发布WebService返回DataTable
初始化Datatable时,需要为Datatable命名.否则在客户端使用时,会报“datatable不能序列化...”导致表格无法从服务器端读取到. 例如: 服务器端: DataTable dt = ...
- 【转】java 访问.net webservice返回的数据集
转自[转的也是转的][http://blog.csdn.net/fox123871/article/details/8637839] 1. 概述 很多正在开发或者打算开发XML Web Service ...
- IBatis.Net使用总结(二)-- IBatis返回DataTable/DataSet(网上例子的集合)
IBatis返回DataTable,DataSet ibatis.net QueryForDataTable 完整的为ibatis.net 引入datatable支持要改动很多地方,所以描述的是最小化 ...
- 分析案例:应用服务无响应,任务管理器中发现大量w3wp僵尸进程----等待异构系统WebService返回值
问题描述: 某二次开发的项目反馈,不定期出现应用服务器无响应的情况,登录服务器发现任务管理器中有大量的w3wp僵尸进程. 分析过程: 针对同一进程每隔15秒抓取dump,连续抓取3个,对比 ...
- LINQ查询返回DataTable类型
个人感觉Linq实用灵活性很大,参考一篇大牛的文章LINQ查询返回DataTable类型 http://xuzhihong1987.blog.163.com/blog/static/267315872 ...
- 在DataTable中执行DataTable.Select("条件")返回DataTable;
转:http://blog.csdn.net/hcf_force/article/details/7779062 1.在DataTable中执行DataTable.Select("条件&qu ...
- iBatis.Net实现返回DataTable和DataSet对象
如题.要返回一个ADO.NET对象好像没有使用ORM的必要,而且从编程的角度看这样的实现一点也不OO,但是实际的开发场景中还是会碰到这种需求的.下面我就借鉴前人的经验,结合实际的示例,再总结一下.如果 ...
- JQuery请求WebService返回数据的几种处理方式
打开自己的博客仔细浏览了一番,发现已经好久没有写博客了,由于最近一直比较忙碌懈怠了好多.默默反省三分钟.......言归正传,现在就对最近在学习webservice的过程中遇到的几种类型的问题中我的理 ...
随机推荐
- Linux查看设置系统时区
关于时区的概念,其实初中地理课已经涉及,很多人都多少了解一些,可能只是细节搞不太清楚.为什么会将地球分为不同时区呢?因为地球总是自西向东自转,东边总比西边先看到太阳,东边的时间也总比西边的早.东边时刻 ...
- 笔记整理之BCP
很多时候,需要批量的导数据,可能大家想到的第一反应就是右键数据库->任务->导入导出数据.但是其实微软自身提供的大容量导入导出工具,有bcp, bulkinsert 之类的也是很好用.今天 ...
- springMVC 配置CharacterEncodingFilter之后不起效果
最近开始自学springMVC框架,遇到中文乱码这一经典问题,记录下解决过程,以便后续忘记 web.xml 里过滤器配置如下: <?xml version="1.0" enc ...
- liunx作业一
一.linux发行版 linux发行版是以linux为内核,包含了系统软件和应用软件.简化系统安装的工具.软件安装升级的集成管理器. 典型的linux发行版包括:linux内核,一些GNU程序库和工具 ...
- [转]一种简单的js时间控件
使用方法: 粘贴代码到文本文档中,文档名称为datetime.js,然后在html文件中引用如下代码即可 <input name="shijian1" id="sh ...
- Python学习day3作业
days3作业 作业需求 HAproxy配置文件操作 根据用户输入,输出对应的backend下的server信息 可添加backend 和sever信息 可修改backend 和sever信息 可删除 ...
- [ZZ]From QA to Engineering Productivity
http://googletesting.blogspot.com/2016/03/from-qa-to-engineering-productivity.html In Google’s early ...
- js实现九九乘法表
<script type="text/javascript"> var sum=0; var wite; for (var i = 1; i < 10; i++) ...
- 洛谷P1330封锁阳光大学[二分图染色]
题目描述 曹是一只爱刷街的老曹,暑假期间,他每天都欢快地在阳光大学的校园里刷街.河蟹看到欢快的曹,感到不爽.河蟹决定封锁阳光大学,不让曹刷街. 阳光大学的校园是一张由N个点构成的无向图,N个点之间由M ...
- HDU3466 Proud Merchants[背包DP 条件限制]
Proud Merchants Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others) ...