Flex与.NET WebService(续:与DataTable协作)
来源:互联网 发布:美国国籍的好处知乎 编辑:程序博客网 时间:2024/06/01 10:28
NET WebService经常会返回DataSet数据,因此,如果Flex能够处理DataSet就完美了。本以为这是很简单的事,但实际试过后,才发现有问题。难道Flex不能与.NET的DataSet一起工作吗?
经过上网查找,没找到解决方法。发现有的人是用结构数组来返回数据,有的是转换成xml字串来返回数据。不论是什么方法,都要对现有的.NET WebService进行大的变动,并且也不方便。
最后发现,使用DataTable返回数据就可以直接与Flex协作。
举一个很简单的例子:
现有如下的数据表:
WebMethod为GetCustomer:
现在Flex只要很简单的增加<mx:WebService>就可以了:
经过上网查找,没找到解决方法。发现有的人是用结构数组来返回数据,有的是转换成xml字串来返回数据。不论是什么方法,都要对现有的.NET WebService进行大的变动,并且也不方便。
最后发现,使用DataTable返回数据就可以直接与Flex协作。
举一个很简单的例子:
现有如下的数据表:
WebMethod为GetCustomer:
[WebService(Namespace = "http://tempuri.org/")]
public class Service : System.Web.Services.WebService
{
public Service () { }
[WebMethod]
public DataTable GetCustomers() {
DataSet ds = new DataSet();
using (SqlConnection conn = new SqlConnection(@"Data Source=muf/sqlexpress;Initial Catalog=Test;Integrated Security=True"))
using (SqlDataAdapter ada = new SqlDataAdapter("select * from customer", conn))
{
ada.Fill(ds, "customer");
}
return ds.Tables["customer"];
}
}
public class Service : System.Web.Services.WebService
{
public Service () { }
[WebMethod]
public DataTable GetCustomers() {
DataSet ds = new DataSet();
using (SqlConnection conn = new SqlConnection(@"Data Source=muf/sqlexpress;Initial Catalog=Test;Integrated Security=True"))
using (SqlDataAdapter ada = new SqlDataAdapter("select * from customer", conn))
{
ada.Fill(ds, "customer");
}
return ds.Tables["customer"];
}
}
现在Flex只要很简单的增加<mx:WebService>就可以了:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" initialize="Service.GetCustomers.send();">
<mx:WebService id="Service"
wsdl="http://localhost:1708/WebSite1/Service.asmx?WSDL"
useProxy="false">
<mx:operation name="GetCustomers">
<mx:request>
</mx:request>
</mx:operation>
</mx:WebService>
<mx:DataGrid x="25" y="10" dataProvider="{Service.GetCustomers.lastResult.diffgram.NewDataSet.customer}">
<mx:columns>
<mx:DataGridColumn headerText="ID" dataField="ID"/>
<mx:DataGridColumn headerText="Name" dataField="Name"/>
<mx:DataGridColumn headerText="Address" dataField="Address"/>
<mx:DataGridColumn headerText="Age" dataField="Age"/>
<mx:DataGridColumn headerText="Gender" dataField="Gender"/>
</mx:columns>
</mx:DataGrid>
</mx:Application>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" initialize="Service.GetCustomers.send();">
<mx:WebService id="Service"
wsdl="http://localhost:1708/WebSite1/Service.asmx?WSDL"
useProxy="false">
<mx:operation name="GetCustomers">
<mx:request>
</mx:request>
</mx:operation>
</mx:WebService>
<mx:DataGrid x="25" y="10" dataProvider="{Service.GetCustomers.lastResult.diffgram.NewDataSet.customer}">
<mx:columns>
<mx:DataGridColumn headerText="ID" dataField="ID"/>
<mx:DataGridColumn headerText="Name" dataField="Name"/>
<mx:DataGridColumn headerText="Address" dataField="Address"/>
<mx:DataGridColumn headerText="Age" dataField="Age"/>
<mx:DataGridColumn headerText="Gender" dataField="Gender"/>
</mx:columns>
</mx:DataGrid>
</mx:Application>
运行结果如下:
这里头主要注意的是,DataProvider的绑定值为:Service.GetCustomers.lastResult.diffgram.NewDataSet.customer。
其中,NewDataSet是DataSet的名称,customer是表的名称。
思考:为什么DataSet不行而DataTable行呢?
转载:http://www.cnblogs.com/ly4cn/archive/2006/08/08/470539.html
- Flex与.NET WebService(续:与DataTable协作)
- Flex与.NET WebService
- Flex与asp.net的WebService通讯
- Flex与.Net的WebService通信
- Flex与asp.net的WebService通讯
- FLEX与java WebService
- Flex与WebService通信
- flex webservice与wsdl
- net[datatable与dataset]
- flex 与 .net 交互【基于WebService的数据访问】
- Flex与.NET互操作 基于WebService的数据访问
- Flex与.NET互操作:基于WebService…
- .NET之DataTable与DataRow
- .net ----DataTable与购物车
- flex与.net
- android与.NET webservice
- .net remoting 与webservice
- FLEX与.NET通信:WebService与RemoteObject连接地址的动态确定
- [原創]憐惜
- System.map
- Delphi : Application.MessageBox
- [原創]徐家汇公园的小紅楼
- c#.net中的frame
- Flex与.NET WebService(续:与DataTable协作)
- [转]航空运输业向数据标准化方向迈进
- 我应该做什么
- 数据库中去逗号的函数
- [转] J2ME预编译器 - Antenna 入门
- 风险评估杂谈
- js拖拽和放置(javascript drag and drop)
- c#跳转语句
- .net的web项目中treeview的checkbox的选中取消问题