如何创建一个WebService

今天我们来看一下如何在VS2008中创建并应用一个基本的WebService。

场景:利用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;
        }
    }
}

然后,我们需要在我们的solution中引用该服务。
鼠标点击solution,
a) 右键菜单->Add Web Reference,在弹出的对话框中,
b) 我们选择"
Web services in this solution ",
c) 再选择我们刚刚创建的Customers服务。
d) 然后在Web reference Name中我们给我们的服务取个有意义的名字为:WS_Customers。

这些做好以后,我们可以观察在Web.config文件中自动生成了一些东西,如下:

<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>

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列出来了。

时间: 2024-10-10 18:55:53

如何创建一个WebService的相关文章

如何用VB.Net创建一个三层的数据库应用程序(转贴

程序|创建|数据|数据库 1. 概论: 本文将介绍如何创建一个三层应用程序,并且将介绍如何创建一个Web Service服务. ADO.NET创建Windows三层结构应用程序的体系架构如下图所示: 该结构分三个层次:表示层.业务层.数据层. 数据层:代表物理数据库. 业务层:负责数据层与表示层之间的数据传输. 表示层:应用程序的客户端,它通过业务层来访问数据库. 表示层所操作的是驻留在内存中的本地数据,当需要更新数据库数据时,要通过业务层提供的更新方法实现.这样可以大大提高应用程序的性能,而且

如何用VB.Net创建一个三层的数据库应用程序

程序|创建|数据|数据库 1. 概论: 本文将介绍如何创建一个三层应用程序,并且将介绍如何创建一个Web Service服务. ADO.NET创建Windows三层结构应用程序的体系架构如下图所示: 该结构分三个层次:表示层.业务层.数据层. 数据层:代表物理数据库. 业务层:负责数据层与表示层之间的数据传输. 表示层:应用程序的客户端,它通过业务层来访问数据库. 表示层所操作的是驻留在内存中的本地数据,当需要更新数据库数据时,要通过业务层提供的更新方法实现.这样可以大大提高应用程序的性能,而且

在PHP中利用wsdl创建标准webservice的实现代码_php技巧

1.创建wsdl 说明: A.非标准的webservice,可能只能PHP才能访问 B.标准的webservice,就必须要使用wsdl(webservice description language,就是用XML语法标准来描述你的服务内容,我是这么理解的) 在这里我只介绍标准的webservice. 那么如何创建wsdl呢?对于PHP来说这确实是件很不容易的事情,有人说用zend studio创建很方便,这是一种方法.但对于那些不喜欢用zend studio的人来说,会觉得创建一个webser

运用C#创建一个.Net下的Web Service

web|创建 微软在其.net战略中,对其主推的Web Service做了大肆的宣扬.现在,Web Service正如火如荼地发展着,相关的各项新技术层出不穷.Web Service的发展正构筑着互联网时代美好的明天.在本文中,我将向大家介绍Web Service的一些基本知识.如何用C#建立一个Web Service.通过文章,我们还将对WSDL.UDDI以及未来的Web Service有一个大致的了解. 为什么需要Web Service? 以前,分布式的应用程序逻辑需要使用分布式的对象模型,

如何使用C#创建一个三层的数据库应用程序

程序|创建|数据|数据库 如何使用C#创建一个三层的数据库应用程序1.分析在我们这个程序中采用如下的层次:Web层,业务实体层,数据层.其中:业务实体层负责Web层与数据层之间的数据交换.数据层仅仅代表数据库.Web层通过业务实体层来访问数据库.我们的中间的业务实体层采用WebService.2.实例我们通过一个实例来学习三层架构.(1) 以sql2000为例建立TestUser数据库.表的sql脚本(在查询分析器中执行即可):/****** Object: Table [dbo].[Custo

js-html中创建一个天气的页面

问题描述 html中创建一个天气的页面 想从api中获取数据,样式由自己来定 是否能够只使用 html css js样式来完成 解决方案 最简单的框架网页 <iframe marginwidth="0" marginheight="0" src="http://m.weather.com.cn/m/pn7/weather.htm" frameborder="0" width="100%" scroll

在PHP中利用wsdl创建标准webservice

参照整理: http://bbs.php100.com/read-htm-tid-95228.html http://www.ieliwb.com/wsdl-create-soapdiscovery/ 说明:     非标准的webservice,可能只能PHP才能访问     标准的webservice,就必须要使用wsdl 在这里我只介绍标准的webservice 一. 创建WSDL 1.网上下载SoapDiscovery.class.php类 2.修改SoapDiscovery.class

sql-数据库视图里要创建一个计算的字段,如何避免被除数为零

问题描述 数据库视图里要创建一个计算的字段,如何避免被除数为零 数据库视图里要创建一个字段,是个除法,但被除数可能为零,我按照网上讲的CASE WHEN方法改了之后,总提示我表达式无效或缺少,我贴出来我的代码 ROUND(CASE WHEN V_RECOMMAND_CANDIDATE.vote_total > 0 THEN ((CAST(RECOMMAND_CANDIDATE_1.vote_agree AS FLOAT) / V_RECOMMAND_CANDIDATE.vote_total *

关于java判断oracle中的表是否存在,不存在则创建一个表的问题

问题描述 关于java判断oracle中的表是否存在,不存在则创建一个表的问题 代码如下try{ Class.forName(""oracle.jdbc.driver.OracleDriver""); String url = ""jdbc:oracle:thin:@""+localhost+"":""+port+"":""+dbname; con