明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

網(wǎng)站間共享數(shù)據(jù)的WebService

[摘要]我記得好象有一個(gè)網(wǎng)友問過關(guān)于怎樣在幾個(gè)站點(diǎn)間共享數(shù)據(jù)庫資源我在兩臺(tái)電腦上試驗(yàn)成功了我的代碼是這樣的提供大家參考在站點(diǎn)a的數(shù)據(jù)庫服務(wù)器的數(shù)據(jù)庫中有一個(gè)數(shù)據(jù)表NoteBoard包含字段ID(編號(hào)),Title(標(biāo)題),NoterName(留言人名字),NoteTime(留言時(shí)間)怎樣可以讓站點(diǎn)b獲得這...

我記得好象有一個(gè)網(wǎng)友問過關(guān)于怎樣在幾個(gè)站點(diǎn)間共享數(shù)據(jù)庫資源我在兩臺(tái)電腦上試驗(yàn)成功了我的代碼是這樣的提供大家參考
在站點(diǎn)a的數(shù)據(jù)庫服務(wù)器的數(shù)據(jù)庫中有一個(gè)數(shù)據(jù)表NoteBoard包含字段ID(編號(hào)),Title(標(biāo)題),NoterName(留言人名字),NoteTime(留言時(shí)間)
怎樣可以讓站點(diǎn)b獲得這個(gè)數(shù)據(jù)表的記錄呢。



在a定義訪問a站數(shù)據(jù)庫的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;
}
}



///////////////////////////////////////////////////////////////////////////////
假設(shè)這個(gè)webservice在http://www.a.com/MyViewDBService.asmx
則作為客護(hù)端在站點(diǎn)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
編寫客戶端網(wǎng)頁文件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="序號(hào)" DataField="ID"/>
<asp:BoundColumn HeaderText="標(biāo)題" DataField="Title"/>
<asp:BoundColumn HeaderText="留言人" DataField="NoterName"/>
<asp:BoundColumn HeaderText="留言時(shí)間" 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();
}
}