flex4+asp.net 连接数据库

  初学flex,我下载了flash builder 4,还是60天试用版。

  建立了一个flex项目,创建完以后发现跟vs的ide还真像。不错,用惯了vs,再学flex还是比较容易上手的。拖了几个组件到窗体上,再写一些简单的代码,运行起来,点击那个纯flash的按钮,旁边的label里出现了我输入的文本!挺爽的。

  “hello wold”  trace了一下不能输出,原来是as的函数在函数体后边定义类型。跟我知道的其他语言语法都不同。

    该连接数据库了,这可是快速学习语言必经的一步。从网上找了半天资料,都是用关于web service的。又找了半天找不到别的方法。flex官网上的还不行,英文比较次,幸好有及时翻译软件,不过代码写的比我找到的一个csdn上花了5分下下来的代码还繁琐,索性还是看那个代码吧。

   先打开vs,写了一个连接数据库的web service,然后运行起来,下边是代码:

  
        [WebMethod]
        public  string GetTableXml(string tablename)
        {
            string connString = System.Configuration.ConfigurationManager.ConnectionStrings["connStr"].ToString();
            SqlConnection conn = new SqlConnection(connString);
            string sql = "select * from " + tablename;
            SqlCommand cmd = new SqlCommand(sql, conn);
            try
            {
                cmd.Connection.Open();
                DataSet ds = new DataSet();
                SqlDataAdapter oAdapter = new SqlDataAdapter(cmd);
                oAdapter.Fill(ds);
                return ds.GetXml();
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {

                conn.Close();
            }
        }

   这是一个根据表明获取dataset数据集,然后转换成xml格式输出的web服务。

   然后在flash builder4 的项目里的mxml源代码中添加一个dataGrid,照葫芦画瓢,声明了一个webservice:

   <fx:Declarations>
  <mx:WebService id="ws" wsdl="http://localhost:6700/tradeageService.asmx?WSDL"><!-- Web服务地址-->
  <mx:operation name="GetTableXml" result="ResultHandler()">
   <mx:request xmlns="">
    <tablename>{txtName.text}</tablename><!-- web服务提供的接口的参数名字 本程序是StrSql   sql.text 要执行的SQL语句-->
   </mx:request>
  </mx:operation>  
 </mx:WebService>
 </fx:Declarations>

  最前和最后边的 <fx:Declarations>必须有,因为webservice声明未实现“mx.core.IUIComponent”,所以它必须包含在 <Declarations> 标签中。 

 


  script中的代码:

   <fx:Script>
  <![CDATA[
   
   import mx.collections.ArrayCollection;
   import mx.rpc.events.ResultEvent;
   [Bindable]
   private var asd:XML;           
   private function ResultHandler():void
   {
    asd = new XML(ws.GetTableXml.lastResult);
    dg_comments.dataProvider = asd.children();
   }
   
   
  ]]>
 </fx:Script>

  引入命名空间和定义数据绑定方法。

 

 

  然后定义按钮和文本框,点击执行方法:

  <s:TextInput  id="txtName" text="wf_admin"  x="196" y="66" />
 <s:Button x="352" y="67" label="按钮" click="ws.GetTableXml.send()"/>

 

 

  还有一步,需要在gridview中指定要显示的字段:

  <mx:DataGridColumn headerText="LoginPwd" dataField="LoginPwd"/>

 

  ok,点执行。弹出ie浏览器,点按钮后,datagrid中的单元格立即被数据填充满了。太帅了!

 

 

  

  mxml中的所有代码如下:

 

  <?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
      xmlns:s="library://ns.adobe.com/flex/spark"
      xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" xmlns:userlist="services.userlist.*">

 <fx:Script>
  <![CDATA[
   
   import mx.collections.ArrayCollection;
   import mx.rpc.events.ResultEvent;
   [Bindable]
   private var asd:XML;           
   private function ResultHandler():void
   {
    asd = new XML(ws.GetTableXml.lastResult);
    dg_comments.dataProvider = asd.children();
   }
   
   
  ]]>
 </fx:Script>
 <fx:Declarations>
  <mx:WebService id="ws" wsdl="http://localhost:6700/tradeageService.asmx?WSDL"><!-- Web服务地址-->
  <mx:operation name="GetTableXml" result="ResultHandler()">
   <mx:request xmlns="">
    <tablename>{txtName.text}</tablename><!-- web服务提供的接口的参数名字 本程序是StrSql   sql.text 要执行的SQL语句-->
   </mx:request>
  </mx:operation>  
 </mx:WebService>
  </fx:Declarations>
 
 
 
 <mx:DataGrid id="dg_comments" x="200" y="119">
  <mx:columns>
   <mx:DataGridColumn headerText="ID" dataField="ID"/>
   <mx:DataGridColumn headerText="realName" dataField="RealName"/>
   <mx:DataGridColumn headerText="LoginPwd" dataField="LoginPwd"/>
  </mx:columns>
 </mx:DataGrid>
 <s:Label x="205" y="292" text="标签"/>

 <s:TextInput  id="txtName" text="wf_admin"  x="196" y="66">
  
 </s:TextInput>
 <s:Button x="352" y="67" label="按钮" click="ws.GetTableXml.send()"/>
  

</s:Application>

 

 

 总的来说,flex学起来还是比较容易的,特别是用惯了类似vs的编辑器更是轻车熟路。以前学过flash与.net还没有封装时的集成方法(flash remoting),很麻烦,当时放下没学了,现在再学flex,真是比较爽!

  

  

   

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值