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()); ;
}
浙公网安备 33010602011771号