【IT168技术文档】
我记得好象有一个网友问过关于怎样在几个站点间共享数据库资源
我在两台电脑上试验成功了我的代码是这样的提供大家参考
在站点a的数据库服务器的数据库中有一个数据表NoteBoard
包含字段ID(编号),Title(标题),NoterName(留言人名字),NoteTime(留言时间)
怎样可以让站点b获得这个数据表的记录呢。
在a定义访问a站数据库的webservice文件MyViewDBService.asmx
假设这个webservice在http://www.a.com/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可以使用
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>