/**********************Web Service创建********************** * 新建一个Web Service项目,这里的方法只要加上[WebMethod]属性, * 就可以被当作普通方法一样调用. * 不成熟的理解: * 参数与返回值有限制,比如DataTable就不可以作为返回值传递. * 很爽的一点,DataSet这么复杂的数据类型可以作为返回值传递. * 没有试过用DataSet做参数能不能传递. ***********************************************************/ using System; using System.Web; using System.Web.Services; using System.Web.Services.Protocols; [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] public class Service : System.Web.Services.WebService { public Service() { //如果使用设计的组件,请取消注释以下行 //InitializeComponent(); } [WebMethod] public string HelloWorld() { return "Hello World"; } [WebMethod] public System.Data.DataTable GetDT() { UserInfo userInfo = new UserInfo(); return userInfo.getUser(); } [WebMethod] public System.Data.DataSet GetDS() { UserInfo userInfo = new UserInfo(); return userInfo.getUserDs(); } } /*********************Web Service的调用********************* * 先运行web service项目,得到一个url,类似: * http://localhost:2002/FirstWebService/Service.asmx * 右击添加web引用,在url里输入这个路径,点击前往, * 就会列出web service方法.添加一个命名空间 * 然后实例化一个web service类,就可以像普通方法一样调用. ***********************************************************/ using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) Bind(); } private void Bind() { localhost.Service service = new localhost.Service(); this.gvShow.DataSource = service.GetDS(); //不成熟的理解:DataTable无法序列化,不可以通过web service传递 //this.gvShow.DataSource = service.GetDT(); this.gvShow.DataBind(); } }