首页 新闻 会员 周边

Silverlight中webservice如何传输动态列的datatable数据源?

0
悬赏园豆:50 [已解决问题] 解决于 2010-09-07 10:24

之前传输都是用的list的实体类,现在列数不固定所以无法定义该实例类,我是新手,希望达人给予解决方案!

问题补充: 直接修改返回值为datatable返回的result结果为null啊 我用的webservice
Boson的主页 Boson | 初学一级 | 园豆:62
提问于:2010-08-31 14:00
< >
分享
最佳答案
0

把返回结果改成 DataTable 就可以了.

服务器返回 string ,是DataTable 的 xml 格式,如下:

 

using (MemoryStream ms = new MemoryStream())
{
DataTable dt
= new DataTable();
dt.WriteXml(ms);

ms.Seek(
0, SeekOrigin.Begin);

using (StreamReader sr = new StreamReader(ms))
{
string dtXml = sr.ReadToEnd();
return dtXml;
}
}

 

客户端拿到这个string后,同样使用 DataTable.ReadXML()方法再读出来.

没有DataTable就没有DataTable啊,你可以直接在客户端用 xml 字符串,然后使用 XmlTextReader 把相关的值读出来赋给你的客户端绑定类。

 另外,再给你推荐个SilverLight可以使用的 DataTable,DataSet:

http://silverlightdataset.net/silverlightdataset/Default.aspx

收获园豆:50
Launcher | 高人七级 |园豆:45050 | 2010-08-31 14:04
结果为null
Boson | 园豆:62 (初学一级) | 2010-08-31 15:12
@Boson:是这样啊,不让平台特定类型啊!那就自己转化一下吧!我把答案更新了.
Launcher | 园豆:45050 (高人七级) | 2010-08-31 15:44
谢谢!这个方法我想过,传过去以后在Silverlight中没有datatable,还是不知道如何解析! 我要绑定到datagrid中。
Boson | 园豆:62 (初学一级) | 2010-08-31 17:55
@Boson:没有DataTable就没有DataTable啊,你可以直接在客户端用 xml 字符串,然后使用 XmlTextReader 把相关的值读出来赋给你的客户端绑定类。
Launcher | 园豆:45050 (高人七级) | 2010-08-31 20:32
@Boson: 另外,再给你推荐个SilverLight可以使用的 DataTable,DataSet: http://silverlightdataset.net/silverlightdataset/Default.aspx
Launcher | 园豆:45050 (高人七级) | 2010-08-31 20:48
其他回答(2)
0
Astar | 园豆:40805 (高人七级) | 2010-08-31 14:12
你这里面需要定义实体类 我现在连这个实体类的属性项有几个都不确定
支持(0) 反对(0) Boson | 园豆:62 (初学一级) | 2010-08-31 15:14
0

如果是用WCF创建的Web服务的话, 直接返回 DataTable 就可以。

HUHU慈悲 | 园豆:9973 (大侠五级) | 2010-08-31 14:19
由于要部署到2.0的项目中 用的webservice来处理数据 数据量本身也很少 最好还是能用webservice来处理
支持(0) 反对(0) Boson | 园豆:62 (初学一级) | 2010-08-31 15:15
那你把你的实体 标记为[XmlSerializable] 将整个实体所有属性都序列化、在客户端再反序列化。
支持(0) 反对(0) HUHU慈悲 | 园豆:9973 (大侠五级) | 2010-08-31 16:40
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册