ylbtech-WebService-XML Web: 创建和使用 XML Web 服务

创建和使用 XML Web 服务。小案例实现 Web 服务的创建、发布和调用。

1.A,发布者(Promulgator) 返回顶部

发布者网站(The Publisher site web)

/App_Code/WebService.cs

创建和使用 XML Web 服务_调用创建和使用 XML Web 服务_发布_02View Code

using System;
using System.Collections.Generic;
using System.Web;
using System.Web.Services;

using System.Data.SqlClient;
using System.Data;
/// <summary>
///WebService 的摘要说明
/// </summary>
[WebService(Namespace = "http://tempuri.org/",Name="ylb科技",Description="专业的WebService服务")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class WebService : System.Web.Services.WebService {

public WebService () {

//如果使用设计的组件,请取消注释以下行
//InitializeComponent();
}

[WebMethod]
public string HelloWorld() {
return "Hello World";
}
/// <summary>
/// 带方法名注释 MessageName="欢迎某人"
/// </summary>
/// <returns></returns>
[WebMethod(MessageName="欢迎某人")]
public string HelloWorld2()
{
return "欢迎你伟大的ylb先生。";
}

/// <summary>
/// 返回所有产品信息
/// 用适配器做的,无参数
/// </summary>
/// <returns></returns>
[WebMethod]
public DataTable GetProducts()
{
string sql = "select * from Products";

DataSet ds = new DataSet();
DataTable dt = new DataTable();

SqlConnection con = new SqlConnection();
con.ConnectionString = "server=.;database=northwind;integrated security=sspi";

SqlDataAdapter adapter = new SqlDataAdapter(sql, con);

con.Open();

adapter.Fill(ds);

con.Close();

///取出表
dt = ds.Tables[0];

return dt;
}

/// <summary>
/// 返回产品集合,根据CategoryID
/// 有参数
/// </summary>
/// <param name="cateID"></param>
/// <returns></returns>
[WebMethod(CacheDuration = 600)] //设置缓存以秒为单位
public DataTable GetProductsByCateID(int cateID)
{

string sql = "select * from Products where categoryID=@categoryID";

DataSet ds = new DataSet();
DataTable dt = new DataTable();

SqlConnection conn = new SqlConnection();
conn.ConnectionString = "server=.;database=northwind;integrated security=sspi";

SqlCommand com = conn.CreateCommand();

com.CommandText = sql;
//配参
com.Parameters.Add(new SqlParameter("@categoryID", cateID));

conn.Open();
SqlDataReader sdr = com.ExecuteReader();
dt.Load(sdr);

conn.Close();
ds.Tables.Add(dt);

dt = ds.Tables[0];

return dt;
}



}


1.B,调用者(Caller)返回顶部

调用者网站(The Caller site web)

1.B.0, 网站右键添加“添加 Web 引用” 【略】

/App_WebReferences/

/App_WebReferences/localhost/

/App_WebReferences/localhost/WebService.discomap

/App_WebReferences/localhost/WebService.disco

/App_WebReferences/localhost/WebService.wsdl

/Web.config【添加后 web 会添加这样一条注册】

<configuration>
<appSettings>
<add key="localhost.WebService" value="http://localhost:50864/WebSite/WebService.asmx"/>
</appSettings>
</configuration>


1.B.1,

/DemoHouTai.aspx 创建和使用 XML Web 服务_调用创建和使用 XML Web 服务_发布_02View Code

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="DemoHouTai.aspx.cs" Inherits="DemoHouTai" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<h3>
后台调用WebService应用</h3>
<h2>
方法:添加对象
</h2>
<hr />
<h4>
案例:调用查所有产品信息,无参数</h4>
<asp:GridView ID="gvwProductList" runat="server" AllowPaging="True"
EnableModelValidation="True"
onpageindexchanging="gvwProductList_PageIndexChanging">
</asp:GridView>
</div>
</form>
</body>
</html>


/DemoHouTai.aspx.cs 创建和使用 XML Web 服务_调用创建和使用 XML Web 服务_发布_02View Code

using System;
using System.Web.UI.WebControls;

public partial class DemoHouTai : System.Web.UI.Page
{
/// <summary>
/// 展示所有产品
/// </summary>
private void BindProductList()
{
gvwProductList.DataSource = new localhost.ylb科技().GetProducts();
gvwProductList.DataBind();
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//调用
BindProductList();
}
}
protected void gvwProductList_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
//新页码
gvwProductList.PageIndex = e.NewPageIndex;

//更新数据
BindProductList();
}
}


1.B.2,

/DemoHouTai2.aspx 创建和使用 XML Web 服务_调用创建和使用 XML Web 服务_发布_02View Code

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="DemoHouTai2.aspx.cs" Inherits="DemoHouTai2" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<h3>
后台调用WebService应用</h3>
<h2>
方法:添加对象
</h2>
<hr />
<h4>
案例:调用查所有产品信息,有参数</h4>
<hr />
请输入产品类别:<asp:TextBox ID="txtCategoryID" runat="server"></asp:TextBox>
&nbsp;<asp:Button ID="btnSubmit" runat="server" Text="搜索"
onclick="btnSubmit_Click" />
<div>
<asp:Label ID="lblState" runat="server" ForeColor="Red" ></asp:Label></div>
<hr />

该分类下的产品是:<br />
<asp:GridView ID="gvwProductList" runat="server" AllowPaging="True"
EnableModelValidation="True"
onpageindexchanging="gvwProductList_PageIndexChanging">
</asp:GridView>
</div>
</form>
</body>
</html>


/DemoHouTai2.aspx.cs 创建和使用 XML Web 服务_调用创建和使用 XML Web 服务_发布_02View Code

using System;
using System.Web.UI.WebControls;

public partial class DemoHouTai2 : System.Web.UI.Page
{
/// <summary>
/// 绑定产品类表,根据CategoryID
/// </summary>
private void BindProductList()
{
lblState.Text = string.Empty;

int categoryID= 1;
if (IsPostBack) //不是第一次加载该页面
{
if (txtCategoryID.Text.Length > 0)
{
categoryID= Convert.ToInt32(txtCategoryID.Text.Trim());
}
}

gvwProductList.DataSource = new localhost.ylb科技().GetProductsByCateID(categoryID);
gvwProductList.DataBind();

}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//调用
BindProductList();
}
}
protected void btnSubmit_Click(object sender, EventArgs e)
{
BindProductList();
}
protected void gvwProductList_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
//当前页码
gvwProductList.PageIndex = e.NewPageIndex;

//更新数据
BindProductList();
}
}


1.B.3,

/DemoQianTai.aspx 创建和使用 XML Web 服务_调用创建和使用 XML Web 服务_发布_02View Code

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="DemoQianTai.aspx.cs" Inherits="DemoQianTai" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<h3>前台调用WebService应用</h3>
<h2>
方法:添加对象
</h2>
<hr />
<h4>案例:调用查所有产品信息,无参数</h4>
<asp:GridView ID="GridView1" runat="server" AllowPaging="True"
DataSourceID="ObjectDataSource1" EnableModelValidation="True">
</asp:GridView>
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server"
SelectMethod="GetProducts" TypeName="localhost.ylb科技">
</asp:ObjectDataSource>
</div>
</form>
</body>
</html>


1.B.4,

/DemoQianTai2.aspx 创建和使用 XML Web 服务_调用创建和使用 XML Web 服务_发布_02View Code

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="DemoQianTai2.aspx.cs" Inherits="DemoQianTai2" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<h3>
前台调用WebService应用</h3>
<h2>
方法:添加对象
</h2>
<hr />
<h4>
案例:调用查所有产品信息,有参数</h4>
<hr />
请输入产品类别:<asp:TextBox ID="txtCategoryID" runat="server"></asp:TextBox>
&nbsp;<asp:Button ID="btnSubmit" runat="server" Text="搜索" />
<hr />
该分类下的产品是:<br />
<asp:GridView ID="GridView1" runat="server" AllowPaging="True"
DataSourceID="ObjectDataSource1" EnableModelValidation="True">
</asp:GridView>
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server"
SelectMethod="GetProductsByCateID" TypeName="localhost.ylb科技">
<SelectParameters>
<asp:ControlParameter ControlID="txtCategoryID" DefaultValue="1" Name="cateID"
PropertyName="Text" Type="Int32" />
</SelectParameters>
</asp:ObjectDataSource>
</div>
</form>
</body>
</html>


1.C,资源下载(Free Download)​返回顶部​