一起谈.NET技术,Flex 数据访问 WebService (上)

简介:   Flex 支持格式设置为 SOAP 消息且通过 HTTP 传输的 Web 服务请求和结果。SOAP 提供基于 XML 格式的定义,用于在 Web 服务客户端(如使用 Flex 构建的应用程序)和 Web 服务之间交换结构化和类型化信息。

  Flex 支持格式设置为 SOAP 消息且通过 HTTP 传输的 Web 服务请求和结果。SOAP 提供基于 XML 格式的定义,用于在 Web 服务客户端(如使用 Flex 构建的应用程序)和 Web 服务之间交换结构化和类型化信息。

  在.NET和Flex的数据交互可以通过Web Services访问string,object,datatable,List<>,ArrayList等。

  .NET和Flex的数据示例:

  1、返回对象

  定义返回对象的Web Method:

 
 
[WebMethod]
public Employee GetEmployee()
{
return new Employee
{
id
= 1 ,
name
= " Shawn " ,
age
= 25
};
}

  Flex前端代码:

 
 
<? xml version="1.0" encoding="utf-8" ?>
< mx:Application xmlns:mx ="http://www.adobe.com/2006/mxml" layout ="absolute" >
< mx:Script >
<![CDATA[
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
import mx.controls.Alert;
private function onResult(event:ResultEvent):void
{
Alert.show(event.result.name);
}

private function onFault(event:FaultEvent):void
{
Alert.show("调+event.message);
}

private function GetEmployee():void
{
this.MyService.GetEmployee.send();
}
]]>
</ mx:Script >
< mx:Button label ="Get Employee" click ="GetEmployee()" />

< mx:WebService id ="MyService" wsdl ="http://localhost:4081Flex.asmx?WSDL" useProxy ="false" result ="onResult(event)" fault ="onFault(event)" >
< mx:operation name ="GetEmployee" />
</ mx:WebService >
</ mx:Application >

  运行结果:

image

  2、返回DataTable

  定义返回DataTable的Web Method:

 
  
[WebMethod]
public DataTable GetDataTable()
{
DataTable dt
= new DataTable( " Employees " );
dt.Columns.Add(
" id " , typeof ( int ));
dt.Columns.Add(
" name " , typeof ( string ));
dt.Columns.Add(
" age " , typeof ( int ));

DataRow dr
= dt.NewRow();
dr[
" id " ] = 1 ;
dr[
" name " ] = " Shawn " ;
dr[
" age " ] = 25 ;
dt.Rows.Add(dr);

dr
= dt.NewRow();
dr[
" id " ] = 2 ;
dr[
" name " ] = " Jack " ;
dr[
" age " ] = 23 ;
dt.Rows.Add(dr);

return dt;
}

  Flex前端代码:

 
  
<? xml version="1.0" encoding="utf-8" ?>
< mx:Application xmlns:mx ="http://www.adobe.com/2006/mxml" layout ="absolute" >
< mx:Script >
<![CDATA[
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
import mx.controls.Alert;
private function onResult(event:ResultEvent):void
{
}
private function onFault(event:FaultEvent):void
{
Alert.show("调+event.message);
}
private function GetDataTable():void
{
this.MyService.GetDataTable.send();
}
]]>
</ mx:Script >
< mx:Panel width ="400" >
< mx:DataGrid id ="gvEmployee" dataProvider ="{this.MyService.GetDataTable.lastResult.Tables.Employees.Rows}" width ="100%" >
< mx:columns >
< mx:DataGridColumn headerText ="ID" dataField ="id" />
< mx:DataGridColumn headerText ="Name" dataField ="name" />
< mx:DataGridColumn headerText ="Age" dataField ="age" />
</ mx:columns >
</ mx:DataGrid >
< mx:ControlBar >
< mx:Button label ="Get DataTable" click ="GetDataTable()" />
</ mx:ControlBar >
</ mx:Panel >
< mx:WebService id ="MyService" wsdl ="http://localhost:4081/Flex.asmx?WSDL" useProxy ="false" result ="onResult(event)" fault ="onFault(event)" >
< mx:operation name ="GetDataTable" />
</ mx:WebService >
</ mx:Application >  

  运行结果:

image

  3、返回List<>

 
  
[WebMethod]
public List < Employee > GetEmployeeList()
{
return new List < Employee >
{
new Employee
{
id
= 1 ,
name
= " Shawn " ,
age
= 25
},
new Employee
{
id
= 2 ,
name
= " Jack " ,
age
= 23
}
};
}

  Flex前端:

 
  
<? xml version="1.0" encoding="utf-8" ?>
< mx:Application xmlns:mx ="http://www.adobe.com/2006/mxml" layout ="absolute" >
< mx:Script >
<![CDATA[
import mx.collections.ArrayCollection;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
import mx.controls.Alert;
private function onResult(event:ResultEvent):void
{
var arr:ArrayCollection = this.MyService.GetEmployeeList.lastResult as ArrayCollection;
gvEmployee.dataProvider=arr;
}

private function onFault(event:FaultEvent):void
{
Alert.show("调+event.message);
}

private function GetEmployeeList():void
{
this.MyService.GetEmployeeList.send();
}
]]>
</ mx:Script >

< mx:Panel width ="400" >
< mx:DataGrid id ="gvEmployee" width ="100%" >
< mx:columns >
< mx:DataGridColumn headerText ="ID" dataField ="id" />
< mx:DataGridColumn headerText ="Name" dataField ="name" />
< mx:DataGridColumn headerText ="Age" dataField ="age" />
</ mx:columns >
</ mx:DataGrid >
< mx:ControlBar >
< mx:Button label ="Get List" click ="GetEmployeeList()" />
</ mx:ControlBar >
</ mx:Panel >
< mx:WebService id ="MyService" wsdl ="http://localhost:4081/Flex.asmx?WSDL" useProxy ="false" result ="onResult(event)" fault ="onFault(event)" >
< mx:operation name ="GetEmployeeList" />
</ mx:WebService >
</ mx:Application >

  运行结果: image

目录
相关文章
|
30天前
mvc.net分页查询案例——DLL数据访问层(HouseDLL.cs)
mvc.net分页查询案例——DLL数据访问层(HouseDLL.cs)
8 0
|
29天前
|
SQL 数据库
使用ADO.NET查询和操作数据
使用ADO.NET查询和操作数据
9 0
|
1月前
|
XML 开发框架 .NET
C# .NET面试系列八:ADO.NET、XML、HTTP、AJAX、WebService
## 第二部分:ADO.NET、XML、HTTP、AJAX、WebService #### 1. .NET 和 C# 有什么区别? .NET(通用语言运行时): ```c# 定义:.NET 是一个软件开发框架,提供了一个通用的运行时环境,用于在不同的编程语言中执行代码。 作用:它为多语言支持提供了一个统一的平台,允许不同的语言共享类库和其他资源。.NET 包括 Common Language Runtime (CLR)、基础类库(BCL)和其他工具。 ``` C#(C Sharp): ```c# 定义: C# 是一种由微软设计的面向对象的编程语言,专门为.NET 平台开发而创建。 作
174 2
|
2月前
|
SQL 开发框架 .NET
ASP.NET WEB+EntityFramework数据持久化——考核练习库——1、用户管理系统(考点:查询列表、增加、删除)
ASP.NET WEB+EntityFramework数据持久化——考核练习库——1、用户管理系统(考点:查询列表、增加、删除)
67 0
|
4月前
|
Oracle 关系型数据库 数据管理
.NET医院检验系统LIS源码,使用了oracle数据库,保证数据的隔离和安全性
LIS系统实现了实验室人力资源管理、标本管理、日常事务管理、网络管理、检验数据管理(采集、传输、处理、输出、发布)、报表管理过程的自动化,使实验室的操作人员和管理者从繁杂的手工劳作中解放出来,提高了检验人员的工作效率和效益,降低了劳动成本和差错发生率。
|
6月前
|
前端开发 JavaScript
.net core 前端传递参数有值 后端接收到的数据却是null
1、问题分析 在做接口测试时,偶然出现了前端输出有值,但是后端断点调试时却出现接收参数总是为null的情况 2、解决办法 前端打印log,看前端的每一个传值的数据类型,与后端请求参数类进行认真的一一比对 小技巧: ① 直接打印调用接口的传参值的数据类型,例如 console.log(type of this.form.name) --string console.log(type of this.form.age) --number 打印的数据类型与后端接口的参数类比对,查出不对应的类型 ② 关于非必填的值,默认传值可能出现空字符串(' ')、NaN值(Not a Number
99 0
|
7月前
|
JSON 数据格式
.NET Core - 配置绑定:使用强类型对象承载配置数据
.NET Core - 配置绑定:使用强类型对象承载配置数据
|
9月前
|
数据库 C#
C#,.net,winform导入Excel功能以及下载Excel文件到本地,并使用SqlBulkCopy把DataTable类型的数据写入到sqlserver数据库中
C#,.net,winform导入Excel功能以及下载Excel文件到本地,并使用SqlBulkCopy把DataTable类型的数据写入到sqlserver数据库中
215 0
|
12月前
|
缓存 前端开发 JavaScript
采用.Net Core技术框架开发的医院云LIS平台源码,B/S架构
基于B/S架构的医学实验室检验系统源码,整个系统的运行基于WEB层面,只需要在对应的工作台安装一个浏览器软件有外网即可访问。全套系统采用云部署模式,部署一套可支持多家医院检验科共同使用。 采用.Net Core新的技术框架、DEV报表、前端js封装、分布式文件存储、分布式缓存等,支持LIS独立部署,Docker部署等多种方式。
|
12月前
|
Web App开发
.Net Core下使用HtmlAgilityPack解析采集互联网数据
.Net Core下使用HtmlAgilityPack解析采集互联网数据
90 0