javascript解析webserver返回的DataSet,DataTable,DataRow
2011-05-05 19:21
281 查看
1.首先先web.config中务必内含下列设置
其实maxJsonLength可以根据所要传输的数据量大小自行加大和减小~~~默认是500
2.在BIN文件夹中添加Microsoft.Web.Preview.dll的引用
配置好以后就可以使用了~~~
前台页面主要代码:
javascript代码:
webserver服务代码:
<system.web.extensions> <scripting> <webServices> <jsonSerialization maxJsonLength="50000000"> <converters> <add name="DataSetConverter" type="Microsoft.Web.Preview.Script.Serialization.Converters.DataSetConverter, Microsoft.Web.Preview, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> <add name="DataRowConverter" type="Microsoft.Web.Preview.Script.Serialization.Converters.DataRowConverter, Microsoft.Web.Preview, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> <add name="DataTableConverter" type="Microsoft.Web.Preview.Script.Serialization.Converters.DataTableConverter, Microsoft.Web.Preview, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> </converters> </jsonSerialization> </webServices> </scripting> </system.web.extensions>
其实maxJsonLength可以根据所要传输的数据量大小自行加大和减小~~~默认是500
2.在BIN文件夹中添加Microsoft.Web.Preview.dll的引用
配置好以后就可以使用了~~~
前台页面主要代码:
<body> <form id="form1" runat="server"> <asp:ScriptManager ID="ScriptManager1" runat="server"> <Scripts> </Scripts> <Services> <asp:ServiceReference Path="WebService.asmx" /> </Services> </asp:ScriptManager> <div align="center"> <span style="font-size: medium; font-weight: bold" mce_style="font-size: medium; font-weight: bold">输入客户编号:</span> <input id="Text1" type="text" /> <input id="Button1" type="button" value="查询返回DataSet" onclick="GetDataSet()"/> <input id="Button2" type="button" value="查询返回DataTable" onclick="GetDataTable()"/> <input id="Button3" type="button" value="查询返回DataRow" onclick="GetDataRow()"/> <br /> <fieldset> <legend>查询结果</legend> <div id="resultcontent"> </div> </fieldset> <fieldset> <legend>全部客户信息<input id="Button4" type="button" value="显示全部客户信息" onclick="GetAll()" /></legend> <div id="resultall"> </div> </fieldset&g 4000 t; </div> </form> </body>
javascript代码:
function GetAll() { WebService.GetAll(onsuccess,onfaile,"All"); } function GetDataSet() { var id=$get('Text1').value; if(id=="") { alert("请输入编号"); return; } WebService.GetDataSet(id,onsuccess,onfaile,"dataset"); } function GetDataTable() { var id=$get('Text1').value; if(id=="") { alert("请输入编号"); return; } WebService.GetDataTable(id,onsuccess,onfaile,"datatable"); } function GetDataRow() { var id=$get('Text1').value; if(id=="") { alert("请输入编号"); return; } WebService.GetDataRow(id,onsuccess,onfaile,"datarow"); } function onsuccess(result,usercontent) { var resultcontent=$get('resultcontent'); if(usercontent=="All") { var resultall=$get("resultall") if(result.rows==null) { resultall.innerHTML="<span>没有结果!</span>"; return; } var rows=result.rows; var name=result.columns[0].name; var adress=result.columns[1].name; var builder=new Sys.StringBuilder("<table border=1>"); builder.append(String.format("<tr><td>{0}</td><td>{1}</td></tr>",name,adress)); for(var i=0;i<rows.length;i++) { builder.append("<tr><td>"+rows[i][name]+"</td><td>"+rows[i][adress]+"</td></tr>"); } builder.append("</table>"); resultall.innerHTML=builder.toString(); } if(usercontent=="dataset") { if(result.tables[0].rows==null) { resultcontent.innerHTML="<span>没有结果!</span>"; return; } //得到行的集合 var rows=result.tables[0].rows; var name=result.tables[0].columns[0].name; var adress=result.tables[0].columns[1].name; var builder=new Sys.StringBuilder("<table border=1>"); builder.append(String.format("<tr><td>{0}</td><td>{1}</td></tr>",name,adress)); for(var i=0;i<rows.length;i++) { builder.append("<tr><td>"+rows[i][name]+"</td><td>"+rows[i][adress]+"</td></tr>"); } builder.append("</table>"); resultcontent.innerHTML=builder.toString(); } if(usercontent=="datatable") { if(result.rows==null) { resultcontent.innerHTML="<span>没有结果!</span>"; return; } var rows=result.rows; var name=result.columns[0].name; var adress=result.columns[1].name; var builder=new Sys.StringBuilder("<table border=1>"); builder.append(String.format("<tr><td>{0}</td><td>{1}</td></tr>",name,adress)); for(var i=0;i<rows.length;i++) { builder.append("<tr><td>"+rows[i][name]+"</td><td>"+rows[i][adress]+"</td></tr>"); } builder.append("</table>"); resultcontent.innerHTML=builder.toString(); } if(usercontent=="datarow") { if(result==null) { resultcontent.innerHTML="<span>没有结果!</span>"; return; } var builder=new Sys.StringBuilder("<table border=1>"); builder.append("<tr><td>公司名称</td><td>地址</td></tr>"); builder.append("<tr><td>"+result["公司名称"]+"</td><td>"+result["地址"]+"</td></tr>"); builder.append("</table>"); resultcontent.innerHTML=builder.toString(); } } function onfaile(error) { var resultcontent=$get('resultcontent'); var stackTrace=error.get_stackTrace(); var message=error.get_message(); var statusCode=error.get_statusCode(); var exceptionType=error.get_exceptionType(); var timedout=error.get_timedOut(); var ReltElem=$get("Results"); resultcontent.innerHTML= "堆栈追踪:" + stackTrace + "<br/>" + "服务错误:" + message + "<br/>" + "状态码:" + statusCode + "<br/>" + "异常类型:" + exceptionType + "<br/>" + "超时:" + timedout; } if (typeof(Sys) !== 'undefined') Sys.Application.notifyScriptLoaded();
webserver服务代码:
using System; using System.Collections; using System.Linq; using System.Web; using System.Web.Services; using System.Web.Services.Protocols; using System.Xml.Linq; using System.Data; using System.Data.SqlClient; using System.Web.Configuration; using System.Web.Script.Services; /**//// <summary> ///WebService 的摘要说明 /// </summary> [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] //若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。 [System.Web.Script.Services.ScriptService] public class WebService : System.Web.Services.WebService { public WebService () { //如果使用设计的组件,请取消注释以下行 //InitializeComponent(); } [WebMethod] public DataSet GetDataSet(string id) { using (SqlConnection conn = new SqlConnection(WebConfigurationManager.ConnectionStrings["Personal"].ConnectionString)) { DataSet dataset = new DataSet(); SqlDataAdapter adapter = new SqlDataAdapter("select [公司名称],[地址] from [客户] where [客户编号] = '"+id+"'",conn); adapter.Fill(dataset, "客户"); return dataset; } return null; } [WebMethod] public DataTable GetAll() { using (SqlConnection conn = new SqlConnection(WebConfigurationManager.ConnectionStrings["Personal"].ConnectionString)) { DataSet dataset = new DataSet(); SqlDataAdapter adapter = new SqlDataAdapter("select [客户编号],[地址] from [客户]", conn); adapter.Fill(dataset, "客户"); DataTable datatable = dataset.Tables[0]; return datatable; } return null; } [WebMethod] public DataTable GetDataTable(string id) { using (SqlConnection conn = new SqlConnection(WebConfigurationManager.ConnectionStrings["Personal"].ConnectionString)) { DataSet dataset = new DataSet(); SqlDataAdapter adapter = new SqlDataAdapter("select [公司名称],[地址] from [客户] where [客户编号] = '"+id+"'",conn); adapter.Fill(dataset, "客户"); DataTable datatable = dataset.Tables[0]; return datatable; } return null; } [WebMethod] public DataRow GetDataRow(string id) { // 取得 web.config 中的数据库联机字符串设定来创建 SQL 联机对象。 using (SqlConnection cn = new SqlConnection(WebConfigurationManager.ConnectionStrings["Personal"].ConnectionString)) { SqlCommand SQLCmd = cn.CreateCommand(); // 设定查询语句。 SQLCmd.CommandText = "select [公司名称],[地址] from [客户] where [客户编号] ='" + id + "'"; // 开启数据库连接并将数据读入数据读取器中。 cn.Open(); using (SqlDataReader dr = SQLCmd.ExecuteReader()) { if (dr.HasRows) { DataTable myTable = new DataTable("客户"); myTable.Load(dr, LoadOption.OverwriteChanges); return myTable.Rows[0]; } } } return null; } }
相关文章推荐
- javascript解析webserver返回的DataSet,DataTable,DataRow
- ADO.NET中DataSet、DataTable、DataRow的数据复制方法
- DataSet,DataTable与DataRow的复制方法
- DataSet DataTable DataRow
- WebService传递XML数据 C#DataSet操作XML 解析WebService返回的XML数据
- JavaScript学习5---Ajax返回xml文档及其解析
- DataTable ,DataRow ,DataSet 用法
- DataSet、DataTable、DataRow的数据复制方法
- DataSet,DataTable与DataRow的复制方法
- Jquery JavaScript解析Ajax返回的json数据(转)
- javascript解析ajax返回的xml和json格式数据实例详解
- ADO.NET中DataSet、DataTable、DataRow的数据复制方法
- DataSet、DataTable、DataRow的数据复制方法
- C# 关于DataSet, DataTable, DataRow 和DataColumn的区别和用法
- DataSet、DataTable、DataRow、DataColumn区别及使用实例
- ADO.NET中DataSet、DataTable、DataRow的数据复制方法
- iBatis.Net实现返回DataTable和DataSet对象
- javascript 解析ajax返回的xml和json格式的数据
- DataSet和DataTable和DataRow和DataColumn
- 解析JavaScript中instanceof对于不同的构造器或许都返回true