DataAccess 这个例子 演示了 Flex 如何处理DataTable
.net 端访问的是access数据库。
main.mxml
import mx.controls.Alert;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
import mx.collections.ArrayCollection;
[Bindable]
private var customers:ArrayCollection;
private var customerVORef:CustomerVO;
private function getCustomers(areaCode:String):void
{
ro.GetCustomers(areaCode);
}
public function customersHandler(event:ResultEvent):void
{
customers = event.result as ArrayCollection;
}
public function faultHandler(event:FaultEvent):void
{
Alert.show("Fault", event.fault.toString());
}
]]>
-----------------------------------------------------------------------------------
CustomerVO.as
package
{
[RemoteClass(alias="Flex.CustomerVO")]
public class CustomerVO
{
public var firstname:String;
public var lastname:String;
public var phone:String;
}
}
------------------------------------------------------------------------------
MyDataService.cs
using System;
using System.Data;
using System.Data.OleDb;
using System.Configuration;
using System.ComponentModel;
using FluorineFx;
namespace ServiceLibrary
{
[RemotingService]
[Description("Customer data service")]
public class MyDataService
{
private string GetConnectionString()
{
string connectionString = ConfigurationManager.ConnectionStrings["MSAccessConnectionString"].ConnectionString;
return connectionString;
}
[DataTableType("Flex.CustomerVO")]
[Description("Filter customer by phone area code")]
public DataTable GetCustomers(string areaCode)
{
using (OleDbConnection connection = new OleDbConnection(GetConnectionString()))
{
OleDbCommand command = new OleDbCommand("SELECT firstname, lastname, phone FROM [customer] WHERE phone LIKE '" + areaCode + "%'", connection);
connection.Open();
OleDbDataAdapter adapter = new OleDbDataAdapter(command);
DataTable result = new DataTable();
adapter.Fill(result);
return result;
}
}
[DataTableType("Flex.CustomerVO")]
public DataTable GetCustomerByLastName(string lastname)
{
using (OleDbConnection connection = new OleDbConnection(GetConnectionString()))
{
OleDbCommand command = new OleDbCommand("SELECT firstname, lastname, phone FROM [customer] WHERE lastname LIKE '" + lastname + "%'", connection);
connection.Open();
OleDbDataAdapter adapter = new OleDbDataAdapter(command);
DataTable result = new DataTable();
adapter.Fill(result);
return result;
}
}
}
}