flex3通过fluorinefx跟asp.net进行数据交互

       这几天不太忙把原来的一些小的示例整理一下,这个示例是一个简单的通过fluorinefx与asp.net结合来时间flex连接数据库的.因为一直以来flex+java大家都认为是最好的搭档但是asp.net也是很好的选择,个人认为asp.net的效率要比java的高.好了现在进入正题.

      flex部分代码如下:

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>
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>
好了到现在为止flex部分的文件已经完全展现给大家了.
 
下面是asp.net部分
 
首先确定在机器里已经安装了fluorinefx,现在fluorinefx已经可以支持在vs2008中使用了
打开vs2008或vs2005以后在就会出现一个fluorinefx的选项,建立好以后就可以通过修改cs代码来实现连接数据库的功能
代码如下:
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();



        }

    }

}
好了这段代码就是给大家一个抛砖引玉的作用.如果还有不明白的可以找我要代码.我的群62197976在群共享里有代码
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值