Flex与asp.net webservice交互问题

忙了很多时间,当时以为很难,现在想来就那么容易,就是编程习惯让我有点不适应

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="
http://www.adobe.com/2006/mxml" layout="absolute">
<mx:WebService id="WebServiceinputdata" 
wsdl="
http://localhost:9999/Flexstudy/WebService.asmx?WSDL"
useProxy="false"   fault="Alert.show(event.fault.faultString),'出错了'"
>
<mx:operation name="HelloWorld"   > 
</mx:operation>
<mx:operation name="ExecutSql" > 
</mx:operation>
<mx:operation name="weatherhaveuser"> 
</mx:operation>
   <mx:operation name="getpassword" result="getpassword(event)"   resultFormat="object"> 
</mx:operation>
    <mx:operation name="getusernumber" result="onSuccess(event)" > 
</mx:operation>

</mx:WebService>
<mx:Script>
<![CDATA[
   import mx.rpc.events.ResultEvent;
      import mx.controls.Alert;
      
        private function hysclick():void
        {     
        WebServiceinputdata.getusernumber(username.text);
        //调用这个后自动执行onSuccess(evt:ResultEvent)
        }
         private function hys1click():void
        {     
        WebServiceinputdata.getpassword(username.text);
        //调用这个getusernumber后自动执行getpassword(evt:ResultEvent)
        }
         internal function getpassword(evt:ResultEvent):void
         {
       Alert.show("用户名已存在"+username.text+",密码是:"+String(evt.result.toString()))
         }
        internal function onSuccess(evt:ResultEvent):void
        {
           var usernumber:int=int(evt.result.toString());
            var inputusername:String=username.text;
    if(usernumber!=0)
    {
    //Alert.show(inputusername+"已经被占用!");
    hys1click();
    //Alert.show(String(WebServiceinputdata.weatherhaveuserstr(inputusername)));
    username.text="";   
    }
    else
    {
    var strsql:String ="INSERT INTO videouser   (username, turename, userpassoword) VALUES     ('"+username.text+"', '"+truename.text+"', '"+password.text+"')";
     Alert.show("注册成功!欢迎您");
    WebServiceinputdata.ExecutSql(strsql);
       }
   }
]]>
</mx:Script>

<mx:Label   text="用户名" x="127" y="52">
</mx:Label>
   <mx:Label   text="姓 名" x="127" y="84">
</mx:Label>
   <mx:Label   text="密 码" x="127" y="115">
</mx:Label>
<mx:Button id="hysbt"    x="241" y="166" click="hysclick()"> </mx:Button>
<mx:TextArea id="username" x="208" y="51" height="24"/>
<mx:TextArea id="truename" x="208" y="83" height="24"/>
<mx:TextArea id="password" x="208" y="114" height="24"/>

</mx:Application>

web service :

    [WebMethod]
    public void ExecutSql(string strsql)
    {
        DBAccess mydb = new DBAccess();
        mydb.ExecuteNonQuery(strsql);
    }
    [WebMethod]
    public bool weatherhaveuser(string username)
    {
        string strsql = "select * from videouser where username='" + username + "'";
        DBAccess mydb=new DBAccess();
        DataTable mydt = mydb.ExecuteDataTabel(strsql);
        if (mydt.Rows.Count == 0)
            return false;
        else
            return true;
        
    }
    [WebMethod]
    public string getpassword(string username)
    {
        string strsql = "select * from videouser where username='" + username + "'";
        DBAccess mydb = new DBAccess();
        DataTable mydt = mydb.ExecuteDataTabel(strsql);
        return (mydt.Rows[0]["userpassoword"].ToString());
    }
    [WebMethod]
    public string weatherhaveuserstr(string username)
    {
        string strsql = "select * from videouser where username='" + username + "'";
        DBAccess mydb = new DBAccess();
        DataTable mydt = mydb.ExecuteDataTabel(strsql);
        if (mydt.Rows.Count == 0)
            return "false";
        else
            return (mydt.Rows[0]["turename"].ToString()); ;
    }
    [WebMethod]
    public int getusernumber(string username)
    {
        string strsql = "select * from videouser where username='" + username + "'";
        DBAccess mydb = new DBAccess();
        DataTable mydt = mydb.ExecuteDataTabel(strsql);
        return mydt.Rows.Count;
    }
    [WebMethod]
    public string getpeerid(string username)
    {
        string strsql = "select * from videouser where username='" + username + "'";
        DBAccess mydb = new DBAccess();
        DataTable mydt = mydb.ExecuteDataTabel(strsql);
        return (mydt.Rows[0]["Peerid"].ToString()); ;
    }

posted @ 2009-07-30 10:51  fxair  阅读(362)  评论(0)    收藏  举报