Crie um serviço da web
1. Crie um novo site ASP.NET (eu uso o Visual Studio 2013)
a. Abra o Visual Studio 2013, clique em File—> New—> Website
b. Selecione ASP.NET Web Application
2. Encontre o site recém-criado no Solution Explorer, clique com o botão direito e selecione—> Add—> New Item
3. Selecione "Web Service"
4. Abra WebService.cs, conforme mostrado abaixo, você pode escrever código lógico no arquivo modificado. [WebMethod] declara um método de serviço web que pode ser chamado pelo servidor (equivalente a expor ao cliente), se você não quiser ser exposto pelo cliente, não precisa escrever [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 = "http://student.org/")]
[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. Comece a executar o projeto, você pode visualizar a página de chamada de teste no navegador, você pode ver que os métodos Staff e UpdateStaff podem ser chamados
. 6. Clique em Staff para entrar, digite gonghao (número comercial) para fazer chamadas de teste
Duas chamadas de cliente de serviço da Web
1. Use o IIS para publicar o serviço da Web que acabamos de gerar
a. Abra o IIS, encontre "Site", clique com o botão direito em "Adicionar site" e selecione o caminho físico do projeto construído anteriormente. Depois de adicionar, você pode inserir o exemplo (my) no navegador: http://142.2.70.99/mfgpgm/Service.asmx para visualizar
2. Crie um novo site ASP.NET, encontre o novo nome do projeto no explorador de soluções, clique com o botão direito, selecione "Add" -> "Service Reference"
3. Clique em Advanced—> Add Web Reference—> Insira o endereço publicado e clique na seta—> Clique em Add Reference (conforme mostrado abaixo)
4. Conforme mostrado na figura abaixo, será gerado um WebReference, que pode ser chamado no código (conforme mostrado na figura abaixo)
5. Neste ponto, a criação de todo o WebService foi concluída com sucesso.