一 、服務器端設置
1.修改web.config
在web.config裏面的的system.Web節點添加 android
<webServices> <protocols> <add name= "HttpPost"/> <add name= "HttpGet"/> </protocols> </webServices>2.修改XX.asmx.cs
[WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [System.ComponentModel.ToolboxItem(false)] [System.Web.Script.Services.ScriptService]
//至此,通常函數可在android中能夠經過代碼返回json數據,返回datatable的函數不能夠
3.返回datatable的函數修改
此處須要用到一個函數將datatable轉換成json格式 web
#region dataTable轉換成Json格式 /// /// dataTable轉換成Json格式 /// /// /// public string DataTableJson(DataTable dt) { StringBuilder jsonBuilder = new StringBuilder(); jsonBuilder.Append("{\""); jsonBuilder.Append(dt.TableName.ToString()); jsonBuilder.Append("\":["); for (int i = 0; i < dt.Rows.Count; i++) { jsonBuilder.Append("{"); for (int j = 0; j < dt.Columns.Count; j++) { jsonBuilder.Append("\""); jsonBuilder.Append(dt.Columns[j].ColumnName); jsonBuilder.Append("\":\""); jsonBuilder.Append(dt.Rows[i][j].ToString()); jsonBuilder.Append("\","); } jsonBuilder.Remove(jsonBuilder.Length - 1, 1); jsonBuilder.Append("},"); } jsonBuilder.Remove(jsonBuilder.Length - 1, 1); jsonBuilder.Append("]"); jsonBuilder.Append("}"); return jsonBuilder.ToString(); } #endregion再將本來須要返回datatable的函數新建一個相似函數。此處注意,必定要寫
[WebMethod] [ScriptMethod(ResponseFormat = ResponseFormat.Xml)] public string HPReadQueryPhone(string strSql, string BD) { try { MSQuery dbTable = new MSQuery(); DataSet dsTable = dbTable.HPReadQuery(strSql, BD); dbTable = null; if (dsTable.Tables.Count == 0) { return ""; } else { return DataTableJson(dsTable.Tables[0]); } } catch (System.Exception err) { ThrowException(err); return null; } }