Android调用Aspnet的WebService实例.docx
《Android调用Aspnet的WebService实例.docx》由会员分享,可在线阅读,更多相关《Android调用Aspnet的WebService实例.docx(25页珍藏版)》请在冰点文库上搜索。
Android调用Aspnet的WebService实例
ANDROID调用ASP.NET的WEBSERVICE实例
ASP.NetWebService程序代码:
VS2008
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Web;
usingSystem.Web.Services;
usingSystem.Data;
usingSystem.Data.SqlClient;
namespaceRepairWebService
{
///
///WebService的摘要说明
///
[WebService(Namespace="http:
//tempuri.org/")]
[WebServiceBinding(ConformsTo=WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
//若要允许使用ASP.NETAJAX从脚本中调用此Web服务,请取消对下行的注释。
[System.Web.Script.Services.ScriptService]
publicclassWebService:
System.Web.Services.WebService
{
///
///数据库连接字符串
///
publicstringconnstr=SqlHelper.ConnectionStringLocalTransaction;
[WebMethod]
publicstringHelloWorld()
{
return"HelloWorld";
}
[WebMethod]
publicUsersModelGetPwdByName(stringname)
{
UsersModelmodel=null;
stringstrsql="select*fromuserswherename='"+name+"'";
SqlDataReaderdr=SqlHelper.ExecuteReader(connstr,CommandType.Text,strsql,null);
if(dr.Read())
{
model=newUsersModel();
model.Id=dr.GetInt32(0);
model.Name=dr.GetString
(1);
model.Pwd=dr.GetString
(2);
}
returnmodel;
}
[WebMethod]
publicListGetRepairsList()
{
Listlist=newList();
stringstr="select*fromrepairs";
SqlDataReaderdr=SqlHelper.ExecuteReader(connstr,CommandType.Text,str,null);
while(dr.Read())
{
RepairsModelmodel=newRepairsModel();
model.Id=dr.GetInt32(0);
model.RepairId=dr.GetString
(1);
model.RepairName=dr.GetString
(2);
model.RepairDate=dr.GetDateTime(3);
model.RepairStateId=dr.GetInt32(4);
model.UserId=dr.GetInt32(5);
list.Add(model);
}
returnlist;
}
}
}
Users实体类
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Web;
namespaceRepairWebService
{
publicclassUsersModel
{
privateintid;
publicintId
{
get{returnid;}
set{id=value;}
}
privatestringname;
publicstringName
{
get{returnname;}
set{name=value;}
}
privatestringpwd;
publicstringPwd
{
get{returnpwd;}
set{pwd=value;}
}
}
}
Repairs实体类
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Web;
namespaceRepairWebService
{
publicclassRepairsModel
{
privateintid;
publicintId
{
get{returnid;}
set{id=value;}
}
privatestringrepairName;
publicstringRepairName
{
get{returnrepairName;}
set{repairName=value;}
}
}
}
SqlHelper类
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Web;
usingSystem.Data.SqlClient;
usingSystem.Data;
usingSystem.Collections;
usingSystem.Configuration;
namespaceRepairWebService
{
publicclassSqlHelper
{
//获取数据库连接字符串,其属于静态变量且只读,项目中所有文档可以直接使用,但不能修改
publicstaticreadonlystringConnectionStringLocalTransaction=ConfigurationManager.ConnectionStrings[1].ConnectionString;
//哈希表用来存储缓存的参数信息,哈希表可以存储任意类型的参数。
privatestaticHashtableparmCache=Hashtable.Synchronized(newHashtable());
///
///执行一个不需要返回值的SqlCommand命令,通过指定专用的连接字符串。
///使用参数数组形式提供参数列表
///
///
///使用示例:
/// intresult=ExecuteNonQuery(connString,CommandType.StoredProcedure,"PublishOrders",newSqlParameter("@prodid",24));
///
///一个有效的数据库连接字符串
///SqlCommand命令类型(存储过程,T-SQL语句,等等。
)
///存储过程的名字或者T-SQL语句
///以数组形式提供SqlCommand命令中用到的参数列表
///返回一个数值表示此SqlCommand命令执行后影响的行数
publicstaticintExecuteNonQuery(stringconnectionString,CommandTypecmdType,stringcmdText,paramsSqlParameter[]commandParameters)
{
SqlCommandcmd=newSqlCommand();
using(SqlConnectionconn=newSqlConnection(connectionString))
{
//通过PrePareCommand方法将参数逐个加入到SqlCommand的参数集合中
PrepareCommand(cmd,conn,null,cmdType,cmdText,commandParameters);
intval=cmd.ExecuteNonQuery();
//清空SqlCommand中的参数列表
cmd.Parameters.Clear();
returnval;
}
}
///
///执行一条不返回结果的SqlCommand,通过一个已经存在的数据库连接
///使用参数数组提供参数
///
///
///使用示例:
/// intresult=ExecuteNonQuery(conn,CommandType.StoredProcedure,"PublishOrders",newSqlParameter("@prodid",24));
///
///一个现有的数据库连接
///SqlCommand命令类型(存储过程,T-SQL语句,等等。
)
///存储过程的名字或者T-SQL语句
///以数组形式提供SqlCommand命令中用到的参数列表
///返回一个数值表示此SqlCommand命令执行后影响的行数
publicstaticintExecuteNonQuery(SqlConnectionconnection,CommandTypecmdType,stringcmdText,paramsSqlParameter[]commandParameters)
{
SqlCommandcmd=newSqlCommand();
PrepareCommand(cmd,connection,null,cmdType,cmdText,commandParameters);
intval=cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
returnval;
}
///
///执行一条不返回结果的SqlCommand,通过一个已经存在的数据库事物处理
///使用参数数组提供参数
///
///
///使用示例:
/// intresult=ExecuteNonQuery(trans,CommandType.StoredProcedure,"PublishOrders",newSqlParameter("@prodid",24));
///
///一个存在的sql事物处理
///SqlCommand命令类型(存储过程,T-SQL语句,等等。
)
///存储过程的名字或者T-SQL语句
///以数组形式提供SqlCommand命令中用到的参数列表
///返回一个数值表示此SqlCommand命令执行后影响的行数
publicstaticintExecuteNonQuery(SqlTransactiontrans,CommandTypecmdType,stringcmdText,paramsSqlParameter[]commandParameters)
{
SqlCommandcmd=newSqlCommand();
PrepareCommand(cmd,trans.Connection,trans,cmdType,cmdText,commandParameters);
intval=cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
returnval;
}
///
///执行一条返回结果集的SqlCommand命令,通过专用的连接字符串。
///使用参数数组提供参数
///
///
///使用示例:
/// SqlDataReaderr=ExecuteReader(connString,CommandType.StoredProcedure,"PublishOrders",newSqlParameter("@prodid",24));
///
///一个有效的数据库连接字符串
///SqlCommand命令类型(存储过程,T-SQL语句,等等。
)
///存储过程的名字或者T-SQL语句
///以数组形式提供SqlCommand命令中用到的参数列表
///返回一个包含结果的SqlDataReader
publicstaticSqlDataReaderExecuteReader(stringconnectionString,CommandTypecmdType,stringcmdText,paramsSqlParameter[]commandParameters)
{
SqlCommandcmd=newSqlCommand();
SqlConnectionconn=newSqlConnection(connectionString);
//在这里使用try/catch处理是因为如果方法出现异常,则SqlDataReader就不存在,
//CommandBehavior.CloseConnection的语句就不会执行,触发的异常由catch捕获。
//关闭数据库连接,并通过throw再次引发捕捉到的异常。
try
{
PrepareCommand(cmd,conn,null,cmdType,cmdText,commandParameters);
SqlDataReaderrdr=cmd.ExecuteReader(CommandBehavior.CloseConnection);
cmd.Parameters.Clear();
returnrdr;
}
catch
{
conn.Close();
throw;
}
}
///
///执行一条返回第一条记录第一列的SqlCommand命令,通过专用的连接字符串。
///使用参数数组提供参数
///
///
///使用示例:
/// Objectobj=ExecuteScalar(connString,CommandType.StoredProcedure,"PublishOrders",newSqlParameter("@prodid",24));
///
///一个有效的数据库连接字符串
///SqlCommand命令类型(存储过程,T-SQL语句,等等。
)
///存储过程的名字或者T-SQL语句
///以数组形式提供SqlCommand命令中用到的参数列表
///返回一个object类型的数据,可以通过Convert.To{Type}方法转换类型
publicstaticobjectExecuteScalar(stringconnectionString,CommandTypecmdType,stringcmdText,paramsSqlParameter[]commandParameters)
{
SqlCommandcmd=newSqlC