这几天不太忙把原来的一些小的示例整理一下,这个示例是一个简单的通过fluorinefx与asp.net结合来时间flex连接数据库的.因为一直以来flex+java大家都认为是最好的搭档但是asp.net也是很好的选择,个人认为asp.net的效率要比java的高.好了现在进入正题.
flex部分代码如下:
- mxml文件
mxml文件
- <?xml version="1.0" encoding="utf-8"?>
- <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
- layout="absolute" creationComplete="fs.GetData();" fontSize="13">
- <mx:Script>
- <![CDATA[
- import mx.collections.ArrayCollection;
- import mx.rpc.events.ResultEvent;
- import mx.controls.Alert;
- //获得数据后的处理函数
- public function GetDataHandle(e:ResultEvent):void
- {
- //获得的数据绑定至DataGrid组件
- dg.dataProvider=e.result.tables.serverInfo.initialData as Array;
- }
- //插入数据成功后的处理函数
- public function InsertDataHandle(e:ResultEvent):void
- {
- //提示插入成功
- Alert.show("插入数据成功");
- //重新获取数据
- fs.GetData();
- }
- ]]>
- </mx:Script>
- <mx:Panel width="474" height="489" title="通知">
- <mx:DataGrid id="dg">
- <mx:columns>
- <mx:DataGridColumn headerText="编号" dataField="0"/>
- <mx:DataGridColumn headerText="标题" dataField="1"/>
- <mx:DataGridColumn headerText="内容" dataField="2"/>
- <mx:DataGridColumn headerText="发布者" dataField="3"/>
- </mx:columns>
- </mx:DataGrid>
- <mx:Canvas width="395" height="243">
- <mx:Label x="37" y="27" text="标题"/>
- <mx:TextInput x="80" y="25" id="txtTitle"/>
- <mx:Label x="37" y="155" text="发布者"/>
- <mx:TextInput x="80" y="153" id="txtPublisher"/>
- <mx:Label x="37" y="53" text="内容"/>
- <mx:TextArea x="80" y="55" width="278" height="90" id="txtContent"/>
- <mx:Button x="121" y="198" label="添加" id="btnInsert" click="fs.InsertData(txtTitle.text,txtContent.text,txtPublisher.text);"/>
- </mx:Canvas>
- </mx:Panel>
- <mx:RemoteObject
- destination="fluorine"
- id="fs"
- source="remoting.GetSQLServer2000Data"
- showBusyCursor="true"
- >
- <mx:method
- name="GetData"
- result="GetDataHandle(event)"
- />
- <mx:method
- name="InsertData"
- result="InsertDataHandle(event)"
- />
- </mx:RemoteObject>
- </mx:Application>
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="fs.GetData();" fontSize="13"> <mx:Script> <![CDATA[ import mx.collections.ArrayCollection; import mx.rpc.events.ResultEvent; import mx.controls.Alert; //获得数据后的处理函数 public function GetDataHandle(e:ResultEvent):void { //获得的数据绑定至DataGrid组件 dg.dataProvider=e.result.tables.serverInfo.initialData as Array; } //插入数据成功后的处理函数 public function InsertDataHandle(e:ResultEvent):void { //提示插入成功 Alert.show("插入数据成功"); //重新获取数据 fs.GetData(); } ]]> </mx:Script> <mx:Panel width="474" height="489" title="通知"> <mx:DataGrid id="dg"> <mx:columns> <mx:DataGridColumn headerText="编号" dataField="0"/> <mx:DataGridColumn headerText="标题" dataField="1"/> <mx:DataGridColumn headerText="内容" dataField="2"/> <mx:DataGridColumn headerText="发布者" dataField="3"/> </mx:columns> </mx:DataGrid> <mx:Canvas width="395" height="243"> <mx:Label x="37" y="27" text="标题"/> <mx:TextInput x="80" y="25" id="txtTitle"/> <mx:Label x="37" y="155" text="发布者"/> <mx:TextInput x="80" y="153" id="txtPublisher"/> <mx:Label x="37" y="53" text="内容"/> <mx:TextArea x="80" y="55" width="278" height="90" id="txtContent"/> <mx:Button x="121" y="198" label="添加" id="btnInsert" click="fs.InsertData(txtTitle.text,txtContent.text,txtPublisher.text);"/> </mx:Canvas> </mx:Panel> <mx:RemoteObject destination="fluorine" id="fs" source="remoting.GetSQLServer2000Data" showBusyCursor="true" > <mx:method name="GetData" result="GetDataHandle(event)" /> <mx:method name="InsertData" result="InsertDataHandle(event)" /> </mx:RemoteObject> </mx:Application>
- flex里的services_config.xml这个文件是一个配置文件就好比asp.net里的webconfig意思差不多吧都是xml结构,这个文件要跟mxml文件放在一个路径下文件内容如下:
flex里的services_config.xml这个文件是一个配置文件就好比asp.net里的webconfig意思差不多吧都是xml结构,这个文件要跟mxml文件放在一个路径下文件内容如下:
- <?xml version="1.0" encoding="UTF-8"?>
- <services-config>
- <services>
- <service id="remoting-service"
- class="flex.messaging.services.RemotingService"
- messageTypes="flex.messaging.messages.RemotingMessage">
- <destination id="fluorine">
- <channels>
- <channel ref="my-amf"/>
- </channels>
- <properties>
- <source>*</source>
- </properties>
- </destination>
- </service>
- </services>
- <channels>
- <channel-definition id="my-amf" class="mx.messaging.channels.AMFChannel">
- <endpoint uri="http://localhost:6199/WebSite2/Gateway.aspx" class="flex.messaging.endpoints.AMFEndpoint"/>
- </channel-definition>
- </channels>
- </services-config>
<?xml version="1.0" encoding="UTF-8"?> <services-config> <services> <service id="remoting-service" class="flex.messaging.services.RemotingService" messageTypes="flex.messaging.messages.RemotingMessage"> <destination id="fluorine"> <channels> <channel ref="my-amf"/> </channels> <properties> <source>*</source> </properties> </destination> </service> </services> <channels> <channel-definition id="my-amf" class="mx.messaging.channels.AMFChannel"> <endpoint uri="http://localhost:6199/WebSite2/Gateway.aspx" class="flex.messaging.endpoints.AMFEndpoint"/> </channel-definition> </channels> </services-config>
- 好了到现在为止flex部分的文件已经完全展现给大家了.
好了到现在为止flex部分的文件已经完全展现给大家了.
- 下面是asp.net部分
下面是asp.net部分
- 首先确定在机器里已经安装了fluorinefx,现在fluorinefx已经可以支持在vs2008中使用了
首先确定在机器里已经安装了fluorinefx,现在fluorinefx已经可以支持在vs2008中使用了
- 打开vs2008或vs2005以后在就会出现一个fluorinefx的选项,建立好以后就可以通过修改cs代码来实现连接数据库的功能
打开vs2008或vs2005以后在就会出现一个fluorinefx的选项,建立好以后就可以通过修改cs代码来实现连接数据库的功能
- 代码如下:
代码如下:
- <PRE class=csharp name="code">using System;
- using System.Data;
- using System.Configuration;
- using System.Web;
- using System.Web.Security;
- using System.Web.UI;
- using System.Web.UI.WebControls;
- using System.Web.UI.WebControls.WebParts;
- using System.Web.UI.HtmlControls;
- using System.Data.SqlClient;//引用“System.Data.SqlClient”
- using System.Collections;//引用“System.Collections”
- using FluorineFx.Management.Web;
- using FluorineFx;
- /// <summary>
- /// GetSQLServer2000Data 的摘要说明
- /// </summary>
- namespace remoting //名称空间,可自定义
- {
- [RemotingService()]
- public class GetSQLServer2000Data
- {
- public GetSQLServer2000Data()
- {
- }
- public DataSet GetData()//获得数据库数据
- {
- SqlConnection conn = new SqlConnection();//定义“SqlConnnection”类实例
- //数据库连接字符串
- conn.ConnectionString = "Data Source=.;Initial Catalog=School;Persist Security Info=True;User ID=sa;Password=sa";
- //定义“SqlCommand”实例,从“Notes”表中取数据
- SqlCommand command = new SqlCommand("select * from Notes", conn);
- conn.Open();//打开连接
- SqlDataAdapter da = new SqlDataAdapter();//定义“SqlDataAdapter”类实例
- da.SelectCommand = command;//将“command”值传递给“SqlDataAdapter”的“SelectCommand”属性
- DataSet ds = new DataSet();//定义“DataSet”类实例
- da.Fill(ds, "tables");//取数据
- //关闭数据库
- conn.Close();
- return ds;
- }
- public void InsertData(string title, string content, string publisher)//插入数据
- {
- SqlConnection conn = new SqlConnection();//定义“SqlConnnection”类实例
- //数据库连接字符串
- conn.ConnectionString = "Data Source=.;Initial Catalog=School;Persist Security Info=True;User ID=sa;Password=sa";
- SqlCommand command = new SqlCommand("select Max(noteId) from Notes", conn);
- conn.Open();//打开连接
- SqlDataAdapter da = new SqlDataAdapter();//定义“SqlDataAdapter”类实例
- da.SelectCommand = command;//将“command”值传递给“SqlDataAdapter”的“SelectCommand”属性
- DataSet ds = new DataSet();//定义“DataSet”类实例
- da.Fill(ds, "tables");//取数据
- string newid = (Convert.ToInt32(ds.Tables["tables"].Rows[0][0].ToString()) + 1).ToString();
- command = new SqlCommand("insert into Notes values('" + newid + "','" + title.Trim() + "','" + content.Trim() + "','" + publisher.Trim() + "')", conn);
- command.ExecuteNonQuery();
- conn.Close();
- }
- }
- }</PRE>
- 好了这段代码就是给大家一个抛砖引玉的作用.如果还有不明白的可以找我要代码.我的群62197976在群共享里有代码
回复Comments
作者:
{commentrecontent}