首页 > 编程 > .NET > 正文

完整的网站间共享数据的WebService(Love.NET原创)

2024-07-10 13:07:33
字体:
来源:转载
供稿:网友
我记得好象有一个网友问过关于怎样在几个站点间共享数据库资源
我在两台电脑上试验成功了我的代码是这样的提供大家参考
在站点a的数据库服务器的数据库中有一个数据表noteboard
包含字段id(编号),title(标题),notername(留言人名字),notetime(留言时间)
怎样可以让站点b获得这个数据表的记录呢。
在a定义访问a站数据库的webservice文件myviewdbservice.asmx
<%@webservice language="c#" class="viewdbservice"%>
using system;
using system.data;
using system.data.oledb;
using system.web.services;
public class viewdbservice : webservice
{
[webmethod]
public dataset viewdb()
{
string connstr="provider=microsoft.jet.oledb.4.0;data source=e://wmjdb.mdb";
oledbconnection conn=new oledbconnection(connstr);
string sqls="select id,title,notername,notetime from noteboard order by id";
oledbdataadapter adapter=new oledbdataadapter();
adapter.selectcommand=new oledbcommand(sqls,conn);
dataset dataset=new dataset();
adapter.fill(dataset,"noteboard");
conn.close();
return dataset;
}
}
///////////////////////////////////////////////////////////////////////////////
假设这个webservice在http://www.a.com/myviewdbservice.asmx
则作为客护端在站点b可以使用
wsdl /l:cs /n:dbservice /out:viewdbserviceclient.cs http://www.w.com/myviewdbservice.asmx
生成客户端文件 viewdbserviceclient.cs
用 csc /t:library /out:viewdbserviceclient.dll viewdbserviceclient.cs 编译dll

编写客户端网页文件index.aspx
<%@page language="c#" codebehind="index.aspx.cs" autoeventwireup="false" inherits="wmj.viewdb"%>
<html>
<head>
<title>我的留言板</title>
</head>
<body>
<form runat="server">
<center>
<asp:datagrid id="datagrid1" itemstyle-backcolor="#aaaadd" autogeneratecolumns="false"
alternatingitemstyle-backcolor="#ccccff" headerstyle-backcolor="#000000"

headerstyle-horizontalalign="center"
headerstyle-forecolor="#ffffff" pagerstyle-mode="numericpages"
allowpaging="true" pagesize="4" font-size="10pt" runat="server">
<columns>
<asp:boundcolumn headertext="序号" datafield="id"/>
<asp:boundcolumn headertext="标题" datafield="title"/>
<asp:boundcolumn headertext="留言人" datafield="notername"/>
<asp:boundcolumn headertext="留言时间"  datafield="notetime" dataformatstring="{0:dd/mm/yyyy}"/>

</columns>
</asp:datagrid>
<asp:label id="label1" runat="server"/>
</center>
</form>
</body>
</html>
编写客户端文件的codebehind index.aspx.cs
////////////////////////////////////////////////////////////////////

using system;
using system.web.ui;
using system.web.ui.webcontrols;
using system.data;
using system.data.oledb;
using dbservice;  //引入客户端文件的名字空间
namespace wmj
{
  public class viewdb : page
  {
    protected datagrid datagrid1;
    public viewdb()
    {
      this.init+=new eventhandler(this.page_init);
    }
    public void page_init(object sender,eventargs e)
    {
      this.load+=new eventhandler(this.page_load);
      this.datagrid1.pageindexchanged+=new

datagridpagechangedeventhandler(this.datagrid1_pageindexchanged);
    }

    public void page_load(object sender,eventargs e)
    {
      viewdbservice viewdbservice=new viewdbservice();
      //使用webservice
      datagrid1.datasource=viewdbservice.viewdb().tables["noteboard"].defaultview;
      if(!page.ispostback)
      {
        datagrid1.currentpageindex=0;
        datagrid1.databind();
      }


    }
    public void datagrid1_pageindexchanged(object sender,datagridpagechangedeventargs e)
    {
      datagrid1.currentpageindex=e.newpageindex;
      datagrid1.databind();
    }
  }
}





发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表