我記得好象有一個網友問過關于怎樣在幾個站點間共享數據庫資源我在兩臺電腦上試驗成功了我的代碼是這樣的提供大家參考 在站點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(); } } }
|