zoukankan      html  css  js  c++  java
  • 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();
    }
    }
    }
  • 相关阅读:
    sed 搜索并替换
    error: call of overloaded ‘sqrt(double&)’ is ambiguous
    C++数组读入MATLAB数据
    Ubuntu 18.04 安装 Octave 5.1
    Ubuntu 18.04 安装 CUDA 9.0
    LSTM 神经网络输入输出层
    tf.nn.rnn_cell.MultiRNNCell
    w = tf.Variable(<initial-value>, name=<optional-name>)
    linux下修改环境变量
    linux内核编程学习——草稿
  • 原文地址:https://www.cnblogs.com/oletan/p/1448016.html
Copyright © 2011-2022 走看看