ajax+WebServer及Dataset转xml操作实例

来源:互联网 发布:物理教学软件 编辑:程序博客网 时间:2024/05/12 22:33

一个程序代码把它写到blog上

前台

  1. <%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>
  2. <html>
  3. <head runat="server">
  4.     <title>ajax+WebServer及Dataset转xml操作实例</title>
  5.      <script type="text/javascript" language="javascript">
  6.     var xmlhttp;//声明一个变量
  7.     try
  8.     {
  9.         xmlhttp=new ActiveXObject('Msxml2.XMLHTTP');
  10.     }
  11.     catch(e)
  12.     {
  13.         try
  14.         {
  15.             xmlhttpnew ActiveXObject('Microsoft.XMLHTTP');
  16.         }
  17.         catch(e)
  18.         {
  19.             try
  20.             {
  21.                 xmlhttp=new XMLHttpRequest();
  22.             }
  23.             catch(e)
  24.             {
  25.             }
  26.         }
  27.     }
  28.     var temp=new Array();
  29.     var url="WebService.asmx/HelloWorld";
  30.     xmlhttp.open("post",url,true);        
  31.     xmlhttp.onreadystatechange=function()
  32.     {
  33.         if(xmlhttp.readyState==4)
  34.         {
  35.             if(xmlhttp.status==200)
  36.             {
  37.                 var xmldoc=xmlhttp.responseText;
  38.                 xmldocxmldoc=xmldoc.replace(/</gi,"<");
  39.                 xmldocxmldoc=xmldoc.replace(/>/gi,">");
  40.                 var xmlDoc2 = new ActiveXObject("Microsoft.XMLDOM");
  41.                 xmlDoc2.async="false";
  42.                 xmlDoc2.loadXML(xmldoc);
  43.                 if(xmlDoc2.parseError.errorCode != 0)
  44.                 {
  45.                     alert("读取xml出错");
  46.                 }
  47.                 else
  48.                 {
  49.                     if(xmlDoc2.readyState==4)
  50.                     {
  51.                         var id = xmlDoc2.documentElement.selectNodes("//id");
  52.                         var name = xmlDoc2.documentElement.selectNodes("//name");
  53.                         var temp="";
  54.                         for(var i=0;i<id.length;i++)
  55.                         {   
  56.                             temp+=id(i).text+"  "+name(i).text+"<br>";                         
  57.                         }        
  58.                         document.getElementById("list").innerHTML=temp;             
  59.                     }
  60.                     else
  61.                     {
  62.                         alert("加载失败");
  63.                     }
  64.                 }
  65.             }
  66.             else
  67.             {
  68.                alert(xmlhttp.status);
  69.             }
  70.         }
  71.     }
  72.     xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");   
  73.     xmlhttp.send(null);        
  74.     </script>
  75. </head>
  76. <body>
  77.     <form id="form1" runat="server">
  78.     <div>
  79.     <span id="list"></span>
  80.     </div>
  81.     </form>
  82. </body>
  83. </html>

WebService.asmx

<%@ WebService Language="C#" CodeBehind="~/App_Code/WebService.cs" Class="WebService" %>

 

WebService.cs

  1. using System;
  2. using System.Web;
  3. using System.Collections;
  4. using System.Web.Services;
  5. using System.Web.Services.Protocols;
  6. using System.Data;
  7. using System.Data.SqlClient;
  8. using System.Xml;
  9. /// <summary>
  10. /// WebService 的摘要说明
  11. /// </summary>
  12. [WebService(Namespace = "http://tempuri.org/")]
  13. [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
  14. public class WebService : System.Web.Services.WebService {
  15.     public WebService () {
  16.         //如果使用设计的组件,请取消注释以下行 
  17.         //InitializeComponent(); 
  18.     }
  19.     [WebMethod]
  20.     public string HelloWorld() {
  21.         string conn = "server=127.0.0.1;database=temp;min pool size=40;User ID=sa;Password=sa123";
  22.         SqlConnection myConn = new SqlConnection(conn);
  23.         myConn.Open();
  24.         string cmd = "select * from [user] order by id desc";
  25.         SqlDataAdapter myRead = new SqlDataAdapter(cmd, myConn);
  26.         DataSet mySet = new DataSet();
  27.         myRead.Fill(mySet, "user");
  28.         myConn.Close();
  29.         return mySet.GetXml();
  30.     }
  31.     
  32. }

数据库名称temp

  1. if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[user]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
  2. drop table [dbo].[user]
  3. GO
  4. CREATE TABLE [dbo].[user] (
  5.     [id] [int] IDENTITY (1, 1) NOT NULL ,
  6.     [name] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL 
  7. ) ON [PRIMARY]
  8. GO
原创粉丝点击