如何跨网站共享一个数据库的记录?

本文介绍了一种通过Webservice实现在A网站与B网站间进行数据库数据交换的方法。具体包括了在A网站上创建Webservice服务以供外部调用,并在B网站上通过生成的客户端文件调用该服务来获取数据并显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 
在A网站定义访问A网站(即自身)数据库的webservice文件MyViewDBService.asmx:
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;
}
}
 
现在在B网站使用下列语句生成客户端文件ViewDBServiceClient.cs:
wsdl /l:cs /n:DBService /out:ViewDBServiceClient.cs http://www.B.com/MyViewDBService.asmx
然后用如下语句编译.dll:
csc /t:library /out:ViewDBServiceClient.dll ViewDBServiceClient.cs
 
index.aspx
' 客户端(B网站)网页文件.
<%@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>
 
index.aspx.cs
' 客户端(B网站)文件的codebehind.
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();
}
}
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值