完整的网站间共享数据的WebService
2024-07-21 02:21:48
供稿:网友
中国最大的web开发资源网站及技术社区,
完整的网站间共享数据的webservice
我记得好象有一个网友问过关于怎样在几个站点间共享数据库资源
我在两台电脑上试验成功了我的代码是这样的提供大家参考
在站点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();
}
}
}
作者:love.net
来源:love.net
供稿人:江磊晶