zoukankan      html  css  js  c++  java
  • 用web service 实现连动

    ProductsService.asmx

    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Diagnostics;
    using System.Web;
    using System.Web.Services;
    using System.Data.SqlClient ;


    namespace WebService
    {
        
    /// <summary>
        
    /// ProductsService 的摘要说明。
        
    /// </summary>

        public class ProductsService : System.Web.Services.WebService
        
    {
            
    public ProductsService()
            
    {
                
    //CODEGEN: 该调用是 ASP.NET Web 服务设计器所必需的
                InitializeComponent();
            }


            
    #region 组件设计器生成的代码
            
            
    //Web 服务设计器所必需的
            private IContainer components = null;
                    
            
    /// <summary>
            
    /// 设计器支持所需的方法 - 不要使用代码编辑器修改
            
    /// 此方法的内容。
            
    /// </summary>

            private void InitializeComponent()
            
    {
            }


            
    /// <summary>
            
    /// 清理所有正在使用的资源。
            
    /// </summary>

            protected override void Dispose( bool disposing )
            
    {
                
    if(disposing && components != null)
                
    {
                    components.Dispose();
                }

                
    base.Dispose(disposing);        
            }

            
            
    #endregion


            
    // WEB 服务示例
            
    // HelloWorld() 示例服务返回字符串 Hello World
            
    // 若要生成,请取消注释下列行,然后保存并生成项目
            
    // 若要测试此 Web 服务,请按 F5 键

            [WebMethod] 
            
    public string[] GetCategories() 
            
    {
                
    string strSelect;
                SqlConnection conNorthwind;
                SqlCommand cmdCategories;
                SqlDataReader dtrCategories;
                ArrayList colCategories;
            
                strSelect 
    = "SELECT CategoryName FROM Categories";
                conNorthwind 
    = new SqlConnection( "server=(local);database=Northwind;uid=sa;pwd=" );
                cmdCategories 
    = new SqlCommand( strSelect, conNorthwind );
                conNorthwind.Open();
                dtrCategories 
    = cmdCategories.ExecuteReader();
                colCategories 
    = new ArrayList();
                
    while (dtrCategories.Read())

                colCategories.Add( dtrCategories[
    "CategoryName"] );
                conNorthwind.Close();
                
    return (string[])colCategories.ToArray( typeof( System.String ) ); 
            }




                [WebMethod] 
                
    public string[] GetProducts(string CategoryName) 
                
    {
                    
    string strSelect;
                    SqlConnection conNorthwind;
                    SqlCommand cmdProducts;
                    SqlDataReader dtrProducts;
                    ArrayList colProducts;
            
                    CategoryName 
    = Server.UrlDecode( CategoryName );

                    strSelect 
    = "SELECT ProductName, UnitPrice " +
                        
    "FROM Products, Categories WHERE Products.CategoryID = Categories.CategoryID " +
                        
    "AND CategoryName = @CategoryName";

                    conNorthwind 
    = new SqlConnection(  "server=(local);database=Northwind;uid=sa;pwd=");
                    cmdProducts 
    = new SqlCommand( strSelect, conNorthwind );
                    cmdProducts.Parameters.Add( 
    new SqlParameter( "@CategoryName", CategoryName ) );
                    conNorthwind.Open();
                    dtrProducts 
    = cmdProducts.ExecuteReader();
                    colProducts 
    = new ArrayList();
                    
    while (dtrProducts.Read()) 
                    
    {
                        colProducts.Add(
                            dtrProducts[
    "ProductName"+ 
                            String.Format( 
    " - {0:c}", dtrProducts["UnitPrice"] ) 
                            );
                    }

                    conNorthwind.Close();
                    
    return (string[])colProducts.ToArray( typeof( System.String ) ); 
                }

            }

        }




    调用页面  


     
    <%@ Page language="c#" Codebehind="WebForm2.aspx.cs" AutoEventWireup="false" Inherits="WebService.WebForm2" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
    <HTML>
        
    <HEAD>
            
    <title>WebForm2</title>
            
    <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
            
    <meta name="CODE_LANGUAGE" Content="C#">
            
    <meta name="vs_defaultClientScript" content="JavaScript">
            
    <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
            
    <SCRIPT language="JavaScript">

    var intCallID = 0;

    function Init()
    {
      Service.useService(
    "ProductsService.asmx?WSDL","ProductsService");
      intCallID 
    = Service.ProductsService.callService( Categories_Result, "GetCategories" );
    }



    function Categories_Result( result )
    {
      
    var Categories = new Array();

      Categories 
    = result.value;
      
    for (var intCounter = 0;intCounter < Categories.length;intCounter++ )
      
    {
        
    var optOption = new Option( Categories[ intCounter ] );
        frmProducts.dropCategories.options[ frmProducts.dropCategories.options.length ] 
    = optOption;
      }

    }


    function Categories_Change( newCategory )
    {
      
    var CategoryName = "";
      CategoryName 
    = newCategory.options[ newCategory.selectedIndex ].text;
      lblCategory.innerText 
    = CategoryName;
      intCallID 
    = Service.ProductsService.callService( Products_Result, "GetProducts", CategoryName );
    }



    function Products_Result( result )
    {
      
    var Products = new Array();

      Products 
    = result.value;
      frmProducts.lstProducts.options.length 
    = 0;

      
    for (var intCounter = 0;intCounter < Products.length;intCounter++ )
      
    {
        
    var optOption = new Option( Products[ intCounter ] );
        frmProducts.lstProducts.options[ frmProducts.lstProducts.options.length ] 
    = optOption;
      }

     
    // frmProducts.lstProducts.style.display = "block";   
    }



            
    </SCRIPT>
        
    </HEAD>
        
    <body onload="Init()">
            
    <div id="Service" style="BEHAVIOR:url(webservice.htc)"></div>
            
    <form id="frmProducts">
                
    <select name="dropCategories" onchange="Categories_Change(this)">
                    
    <option selected>Select Product Category</option>
                
    </select>
                
    <p>
                    
    <span id="lblCategory"></span>
                    
    <br>
                    
    <select name="lstProducts">
                        
    <option selected></option>
                    
    </select>
            
    </form>
            
    </P>
        
    </body>
    </HTML>
     
    demo
     
    https://files.cnblogs.com/gwazy/WebService.rar

  • 相关阅读:
    自动关联
    如何提高测试效率
    检查点
    windows server 2008 安装vs2008 的问题
    【转】xampp mysql 忘记密码的解决方案
    zencart 目录产品显示控制
    静态html文件执行php语句的方法
    UNIX主机访问PHP程序提示“Internal Server Error”的处理办法
    【转】javascript 点击 <a> 链接
    u880刷机
  • 原文地址:https://www.cnblogs.com/gwazy/p/152312.html
Copyright © 2011-2022 走看看