ASP.NET Web Service接口创建及调用方法教程 - code:9527 -- 博客

时间: 2023-08-15 admin 互联网

ASP.NET Web Service接口创建及调用方法教程 - code:9527 -- 博客

ASP.NET Web Service接口创建及调用方法教程 - code:9527 -- 博客

一 Web Service创建

1.新建一个ASP.NET网站 (我用的是Visual Studio 2013)

a.打开Visual Studio 2013,点击文件—>新建—>网站

b.选择ASP.NET Web 应用程序

2.在解决方案资源管理器下找到刚新建的网站,选中右键,选择—>添加—>新建项

3.选择“Web服务”

4.打开WebService.cs,如下图,可以在改文件中进行逻辑代码的编写,[WebMethod]是声明一个web服务方法,可以供服务端调用(相当于暴露给客户端),若不想被客户端暴露则不用写上[WebMethod]。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Data.SqlClient;
using System.Data;
 
/// <summary>
///WebService 的摘要说明
/// </summary>
[WebService(Namespace = "/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
//若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。 
// [System.Web.Script.Services.ScriptService]
public class WebService : System.Web.Services.WebService {
 
    public WebService () {
        //如果使用设计的组件,请取消注释以下行 
        //InitializeComponent(); 
    }
    
    private SqlCommand cmd=null;
    private SqlConnection conn=null;
    private String sql=null;
    ///创建数据库连接方法封装
    public void openDatabase() {
        conn = new SqlConnection();
        conn.ConnectionString ==System.Configuration.ConfigurationManager.ConnectionStrings["conn"].ConnectionString;
        if (conn.State == ConnectionState.Closed)
        {
            conn.Open();
            //Response.Write("<script>alert('Connected!');</script>");
        }
    }
  
  ///根据员工工号查询职员的信息
  ///web service 的返回值必须是可序列化的,而qlDataReader类型不能被序列化会出错,这里用DataSet类型
     [WebMethod]
    public DataSet Staff(String gonghao)
    {
            openDatabase();
            String sql = "select * from S where 员工='" + gonghao+ "'";
            SqlDataAdapter sqlad = new SqlDataAdapter(sql, conn);//创建SqlDataAdapter对象并执行sql查询
            DataSet ds = new DataSet();
            sqlad.Fill(ds);
            if (conn.State != ConnectionState.Closed)
            {
                conn.Close();
            }
            return ds;
    }
    
     //更新修改职员信息
    //数据库中身高、体重为float类型,若height、weight为“”空会出错,将其赋值null
     [WebMethod]
     public Boolean UpdateStaff(String gonghao, String height, String weight,String used_name,String email)
     {
         String strError = "";
         String sql = "update S set ";
         
         if (height.Trim() == "") { 
             height = null;
         }
         else { 
             float.Parse(height);
             sql=sql+"身高="+height+",";
         }
         if (weight.Trim() == "")
         {
             weight = null;
         }
         else
         {
             float.Parse(weight);
             sql=sql+ "体重=" + weight + ",";
         }
         if (used_name.Trim() != "") sql = sql + "曾用名='" + used_name + "',";//曾用名为数据库字段名
         if (email.Trim() != "") sql = sql + "电子邮件='" + email+ "',";
         sql = sql.TrimEnd(',') + " where 员工工号='" + gonghao+ "'"; 
         try
         {
             openDatabase();
             cmd = new SqlCommand(sql,conn);
             int count = cmd.ExecuteNonQuery();
             return !(count<1);
         }
         catch(Exception e){
             strError = "更新数据库失败:" +e.Message;
             return false;
         }
         finally
         {
             if (conn.State != ConnectionState.Closed)
             {
                 conn.Close();
             }
         }
     }
    
}

5.启动运行项目,在浏览器中可以查看测试调用页面,可以看到Staff、UpdateStaff方法可以被调用

6.点击Staff进入,输入gonghao(工号)可以进行测试调用

二 Web Service客户端调用

1.用IIS发布我们刚刚生成的Web Service服务

a.打开IIS,找到“网站”,右键“添加网站”,物理路径选择之前建的项目所在路径。添加完毕可以在浏览器中输入 示例(我的):http://142.2.70.99/mfgpgm/Service.asmx进行查看

2.新建ASP.NET 网站,在解决方案资源管理器下找到新建项目名右键,选择“添加”—>"服务引用"

3. 点击高级—>添加Web引用—>输入所发布的地址点击箭头—>点击添加引用(如下图)




4.如下图会生成WebReference,在代码里调用进行调用(如下图)

5.到此,整个WebService的创建到调用就圆满结束了。

喜欢博主的可以点击关注加一键三连,还有各种系统的源码已上传到主页资源中,欢迎下载