今天我们来看一下如何在VS2008中创建并应用一个基本的WebService。
场景:利用VS2008建立一个WebService,改服务取得Northwind下的 Customers表格数据。
ASPX页面调用该服务,并将结果以GridView的形式显示在界面上。
首先,我们当然是做一个service了。
我们通过菜单生成一个Web Service,命名为:Customers,它的完整名字是:Customers.asmx。
代码如下:
然后,我们需要在我们的solution中引用该服务。
鼠标点击solution,
a) 右键菜单->Add Web Reference,在弹出的对话框中,
b) 我们选择" Web services in this solution ",
c) 再选择我们刚刚创建的Customers服务。
d) 然后在Web reference Name中我们给我们的服务取个有意义的名字为:WS_Customers。
这些做好以后,我们可以观察在Web.config文件中自动生成了一些东西,如下:
![](https://www.cnblogs.com/Images/dot.gif)
< applicationSettings >
< BlogNet.Properties.Settings >
< setting name ="BlogNet_WS_Customers_Customers" serializeAs ="String" >
< value > http://localhost:1408/WebService/Customers.asmx </ value >
</ setting >
</ BlogNet.Properties.Settings >
</ applicationSettings >
</ configuration >
最后,我们写一下客户端页面如下:
CS代码如下:
Code
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Xml.Linq;
using System.Data.SqlClient;
namespace BlogNet.WebService
{
[WebService(Namespace = "http://www.cnblogs.com/davidgu/customers")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ToolboxItem(false)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
// [System.Web.Script.Services.ScriptService]
public class Customers : System.Web.Services.WebService
{
[WebMethod]
public DataSet GetCustomers()
{
SqlConnection conn;
SqlDataAdapter myDataAdapter;
DataSet myDataSet;
string cmdString = "Select * From Customers";
conn = new SqlConnection("Data Source=localhost;Initial Catalog=Northwind;Integrated Security=True");
myDataAdapter = new SqlDataAdapter(cmdString, conn);
myDataSet = new DataSet();
myDataAdapter.Fill(myDataSet, "Customers");
return myDataSet;
}
}
}
运行下程序,网页上便会以分页形式把Customers表的数据全部以GridView列出来了。
场景:利用VS2008建立一个WebService,改服务取得Northwind下的 Customers表格数据。
ASPX页面调用该服务,并将结果以GridView的形式显示在界面上。
首先,我们当然是做一个service了。
我们通过菜单生成一个Web Service,命名为:Customers,它的完整名字是:Customers.asmx。
代码如下:
using
System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Xml.Linq;
using System.Data.SqlClient;
namespace BlogNet.WebService
{
[WebService(Namespace = " http://www.cnblogs.com/davidgu/customers " )]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ToolboxItem( false )]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
// [System.Web.Script.Services.ScriptService]
public class Customers : System.Web.Services.WebService
{
[WebMethod]
public DataSet GetCustomers()
{
SqlConnection conn;
SqlDataAdapter myDataAdapter;
DataSet myDataSet;
string cmdString = " Select * From Customers " ;
conn = new SqlConnection( " Data Source=localhost;Initial Catalog=Northwind;Integrated Security=True " );
myDataAdapter = new SqlDataAdapter(cmdString, conn);
myDataSet = new DataSet();
myDataAdapter.Fill(myDataSet, " Customers " );
return myDataSet;
}
}
}
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Xml.Linq;
using System.Data.SqlClient;
namespace BlogNet.WebService
{
[WebService(Namespace = " http://www.cnblogs.com/davidgu/customers " )]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ToolboxItem( false )]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
// [System.Web.Script.Services.ScriptService]
public class Customers : System.Web.Services.WebService
{
[WebMethod]
public DataSet GetCustomers()
{
SqlConnection conn;
SqlDataAdapter myDataAdapter;
DataSet myDataSet;
string cmdString = " Select * From Customers " ;
conn = new SqlConnection( " Data Source=localhost;Initial Catalog=Northwind;Integrated Security=True " );
myDataAdapter = new SqlDataAdapter(cmdString, conn);
myDataSet = new DataSet();
myDataAdapter.Fill(myDataSet, " Customers " );
return myDataSet;
}
}
}
然后,我们需要在我们的solution中引用该服务。
鼠标点击solution,
a) 右键菜单->Add Web Reference,在弹出的对话框中,
b) 我们选择" Web services in this solution ",
c) 再选择我们刚刚创建的Customers服务。
d) 然后在Web reference Name中我们给我们的服务取个有意义的名字为:WS_Customers。
这些做好以后,我们可以观察在Web.config文件中自动生成了一些东西,如下:
![](https://www.cnblogs.com/Images/dot.gif)
< applicationSettings >
< BlogNet.Properties.Settings >
< setting name ="BlogNet_WS_Customers_Customers" serializeAs ="String" >
< value > http://localhost:1408/WebService/Customers.asmx </ value >
</ setting >
</ BlogNet.Properties.Settings >
</ applicationSettings >
</ configuration >
最后,我们写一下客户端页面如下:
<%
@ Page Language
=
"
C#
"
AutoEventWireup
=
"
true
"
CodeBehind
=
"
testCustomer.aspx.cs
"
Inherits
=
"
BlogNet.WebService.testCustomer
"
%>
<! 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 > ASP.NET - 建立WebService </ title >
</ head >
< body >
< form id ="form1" runat ="server" >
< div >
< asp:GridView ID ="GridView1"
runat ="server"
AutoGenerateColumns ="False"
AllowPaging ="True"
AllowSorting ="True"
PageSize ="20"
OnPageIndexChanging ="GridView1_PageIndexChanging" >
< Columns >
< asp:BoundField DataField ="CustomerID" HeaderText ="CustomerID" ReadOnly ="True"
SortExpression ="CustomerID" NullDisplayText ="N/A" />
< asp:BoundField DataField ="CompanyName" HeaderText ="CompanyName"
SortExpression ="CompanyName" NullDisplayText ="N/A" />
< asp:BoundField DataField ="ContactName" HeaderText ="ContactName"
SortExpression ="ContactName" NullDisplayText ="N/A" />
< asp:BoundField DataField ="ContactTitle" HeaderText ="ContactTitle"
SortExpression ="ContactTitle" NullDisplayText ="N/A" />
< asp:BoundField DataField ="Address" HeaderText ="Address"
SortExpression ="Address" NullDisplayText ="N/A" />
< asp:BoundField DataField ="City" HeaderText ="City" SortExpression ="City" NullDisplayText ="N/A" />
< asp:BoundField DataField ="Region" HeaderText ="Region"
SortExpression ="Region" NullDisplayText ="N/A" />
< asp:BoundField DataField ="PostalCode" HeaderText ="PostalCode"
SortExpression ="PostalCode" NullDisplayText ="N/A" />
< asp:BoundField DataField ="Country" HeaderText ="Country"
SortExpression ="Country" NullDisplayText ="N/A" />
< asp:BoundField DataField ="Phone" HeaderText ="Phone" SortExpression ="Phone" NullDisplayText ="N/A" />
< asp:BoundField DataField ="Fax" HeaderText ="Fax" SortExpression ="Fax" NullDisplayText ="N/A" />
</ Columns >
</ asp:GridView >
</ div >
</ form >
</ body >
</ html >
<! 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 > ASP.NET - 建立WebService </ title >
</ head >
< body >
< form id ="form1" runat ="server" >
< div >
< asp:GridView ID ="GridView1"
runat ="server"
AutoGenerateColumns ="False"
AllowPaging ="True"
AllowSorting ="True"
PageSize ="20"
OnPageIndexChanging ="GridView1_PageIndexChanging" >
< Columns >
< asp:BoundField DataField ="CustomerID" HeaderText ="CustomerID" ReadOnly ="True"
SortExpression ="CustomerID" NullDisplayText ="N/A" />
< asp:BoundField DataField ="CompanyName" HeaderText ="CompanyName"
SortExpression ="CompanyName" NullDisplayText ="N/A" />
< asp:BoundField DataField ="ContactName" HeaderText ="ContactName"
SortExpression ="ContactName" NullDisplayText ="N/A" />
< asp:BoundField DataField ="ContactTitle" HeaderText ="ContactTitle"
SortExpression ="ContactTitle" NullDisplayText ="N/A" />
< asp:BoundField DataField ="Address" HeaderText ="Address"
SortExpression ="Address" NullDisplayText ="N/A" />
< asp:BoundField DataField ="City" HeaderText ="City" SortExpression ="City" NullDisplayText ="N/A" />
< asp:BoundField DataField ="Region" HeaderText ="Region"
SortExpression ="Region" NullDisplayText ="N/A" />
< asp:BoundField DataField ="PostalCode" HeaderText ="PostalCode"
SortExpression ="PostalCode" NullDisplayText ="N/A" />
< asp:BoundField DataField ="Country" HeaderText ="Country"
SortExpression ="Country" NullDisplayText ="N/A" />
< asp:BoundField DataField ="Phone" HeaderText ="Phone" SortExpression ="Phone" NullDisplayText ="N/A" />
< asp:BoundField DataField ="Fax" HeaderText ="Fax" SortExpression ="Fax" NullDisplayText ="N/A" />
</ Columns >
</ asp:GridView >
</ div >
</ form >
</ body >
</ html >
CS代码如下:
![ContractedBlock.gif](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![ExpandedBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Xml.Linq;
using System.Data.SqlClient;
namespace BlogNet.WebService
{
[WebService(Namespace = "http://www.cnblogs.com/davidgu/customers")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ToolboxItem(false)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
// [System.Web.Script.Services.ScriptService]
public class Customers : System.Web.Services.WebService
{
[WebMethod]
public DataSet GetCustomers()
{
SqlConnection conn;
SqlDataAdapter myDataAdapter;
DataSet myDataSet;
string cmdString = "Select * From Customers";
conn = new SqlConnection("Data Source=localhost;Initial Catalog=Northwind;Integrated Security=True");
myDataAdapter = new SqlDataAdapter(cmdString, conn);
myDataSet = new DataSet();
myDataAdapter.Fill(myDataSet, "Customers");
return myDataSet;
}
}
}
运行下程序,网页上便会以分页形式把Customers表的数据全部以GridView列出来了。