▲我记得好象有一个网友问过关于怎样在几个站...... 我记得好象有一个网友问过关于怎样在几个站点间共享数据库资源我在两台电脑上试验成功了我的代码是这样的提供大家参考 在站点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"%> 编写客户端文件的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(); } } } |
|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )
GMT+8, 2024-9-30 07:17 , Processed in 0.220912 second(s), 12 queries , Gzip On, MemCache On.
Powered by Discuz! X3.5
© 2001-2023 Discuz! Team.