用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
 
http://files.cnblogs.com/gwazy/WebService.rar

你可能感兴趣的:(web Service)