ylbtech-WebService-XML Web: 创建和使用 XML Web 服务 |
创建和使用 XML Web 服务。小案例实现 Web 服务的创建、发布和调用。
1.A,发布者(Promulgator) 返回顶部 |
发布者网站(The Publisher site web)
/App_Code/WebService.cs
View 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 View 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 View 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 View 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>
<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 View 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 View 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 View 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>
<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)返回顶部 |