怎样远程访问access数据库,听说可以用Web Service,但我试了一下,好像不行。还有没有其他方法,最好简单一点的。
    等待各位高手指点...

解决方案 »

  1.   

    WebService肯定可以,而且是最佳方式采用WebService你要注意一点,你的Access文件的访问权限必须是所有人可写入的在资源管理器的文件夹选项中去除使用简单的文件共享,然后到那个Access文件中点右键设置权限,设定为everyone完全控制即可
      

  2.   

    此外,Access文件的虚拟路径要设置好
      

  3.   

    web服务,把你要的查询做成服务
      

  4.   

    这是我写的一段代码,等帮我看看吗?using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Diagnostics;
    using System.Web;
    using System.Web.Services;namespace DataService
    {
    /// <summary>
    /// Service1 的摘要说明。
    /// </summary>
    public class LogonService : System.Web.Services.WebService
    {
    public LogonService()
    {
    //CODEGEN: 该调用是 ASP.NET Web 服务设计器所必需的
    InitializeComponent();
    } #region 组件设计器生成的代码

    //Web 服务设计器所必需的
    private IContainer components = null;

    /// <summary>
    /// 设计器支持所需的方法 - 不要使用代码编辑器修改
    /// 此方法的内容。
    /// </summary>
    private void InitializeComponent()
    { } /// <summary>
    /// 清理所有正在使用的资源。
    /// </summary>
    protected override void Dispose( bool disposing )
    {
    if(disposing && components != null)
    {
    components.Dispose();
    }
    base.Dispose(disposing);
    }

    #endregion // WEB 服务示例
    // HelloWorld() 示例服务返回字符串 Hello World
    // 若要生成,请取消注释下列行,然后保存并生成项目
    // 若要测试此 Web 服务,请按 F5 键 System.Data.OleDb.OleDbCommand cmd1;
    static string conStr=@"Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Registry Path=;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Database Password=;Data Source="".\\server.mdb"";Password=;Jet OLEDB:Engine Type=4;Jet OLEDB:Global Bulk Transactions=1;Provider=""Microsoft.Jet.OLEDB.4.0"";Jet OLEDB:System database=;Jet OLEDB:SFP=False;Extended Properties=;Mode=Share Deny None;Jet OLEDB:New Database Password=;Jet OLEDB:Create System Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;User ID=Admin;Jet OLEDB:Encrypt Database=False";
    System.Data.OleDb.OleDbConnection conn1=new System.Data.OleDb.OleDbConnection(conStr); [WebMethod]
    public bool Login(string yhm,string kl)
    {

    string tempkl="";
    System.Data.OleDb.OleDbDataReader dr;
    if(this.conn1.State==System.Data.ConnectionState.Closed)this.conn1.Open();

    string sql="SELECT yh.user_yhm, yh.user_kl FROM yh "
    +"WHERE yh.user_yhm='"+yhm.Trim()+"'";
    this.cmd1=new System.Data.OleDb.OleDbCommand(sql,this.conn1);
    dr=cmd1.ExecuteReader();
    while(dr.Read())
    {
    tempkl=dr["user_kl"].ToString().Trim(); }
    dr.Close();
    if(tempkl==kl)
    {
    sql="update yh set isonline=true where yhm="+yhm.Trim();
    cmd1=new System.Data.OleDb.OleDbCommand(sql,this.conn1);
    cmd1.ExecuteNonQuery();
    return true;
    }
    else return false;
    }
    }
    }