本机的Web程序要读取内网中另一名机器里的Access数据库,用oleDB的方法
so,联接字符串是这样写的
Provider=Microsoft.Jet.OLEDB.3.51;Data Source=\\MachineName\DocumentName\1.mdb;Mode=Share Deny None当Connection.open时出现
“Microsoft Jet 数据库引擎打不开文件'\\MachineName\DocumentName\1.mdb'。 它已经被别的用户以独占方式打开,或没有查看数据的权限。 ”
的错误,可是\\MachineName\DocumentName\下已经赋予aspnet用户完全控制权限了,而且同样的方法只要连本机的Access数据库是没有问题的头痛!多谢各位帮忙了!

解决方案 »

  1.   

    ACCESS不支持远程访问,我看你这个问题问再多也白搭.
    而且,你在其他的机器上赋予ASPNET用户完全控制权限,那也只是他那台机器的ASPNET用户,并不是你这台机器的ASPNET用户,你当然访问不了了.
      

  2.   

    ms 说过了,access不能用web远程访问,娃哈哈
      

  3.   

    远程访问ACCESS数据库 v1.0
    http://down.chinaz.com/s/1472.asp
    前几天看到的一个软件,没有用过,但是至少提供了一种解决问题的思路
      

  4.   

    可以參考:
    http://www.blueshop.com.tw/board/show.asp?subcde=BRD20050318111434NOA
      

  5.   

    webservice可以实现,但是也需要使用另外的电脑中的数据库..建议你把那个数据库下载到你机子上.随便蹂躏..嘿嘿
      

  6.   

    我用100多台pos打开一个Access的mdb文件也没有问题。你把该添加的参数设置好,不要以独占方式打开。另外,文件服务器方式处理稍大的数据库非常慢。Access文件在“坏”了的时候就会锁死(例如一台客户机正在提交一些数据的时候突然断电关机),此时不得不“修复”数据库文件。你的客户端程序必须在打开数据库出错时,尝试自动修复数据库,然后重新打开。放弃access把。由于文件服务器模式的原因,客户端程序会三天两头把数据库损坏。除非你仅仅是开发本地应用的小玩意儿。尽管如此,不信你在修改数据的时候把机器故意中断,你会发现它十次中会有七、八次把数据库损坏、修复后也丢失了部分数据。
      

  7.   

    Access是我看到的小型数据库中唯一支持事务保护的。但是它“文件服务器”结构让这一优秀思想反而容易造成“死锁”。对很多初学者,宁愿糊里糊涂地接受饱含数据错误的结果,也不愿意接受严格保护错误所造成的程序中断。使用Access作为小型程序的共享数据库,有很多技巧。除了上述在打开时要能够修复错误之外,对于共享链接过高但实时性要求不强的应用,客户端可以用文件拷贝的方式与服务器交换整个数据库文件,然后服务器上专门有一个进程负责收集或者写入新数据,这样可以将共享同一数据库的多道程序全都控制在服务器端。另外要对共享方式写入的数据另外写一份。因为数据库文件修复后通常会丢一两个数据页。实时性要求比较强,也可以由后台产生多个小的数据库用来下载数据。这方面,access的作用与xml完全一样,而且access的数据操作速度远远大于xml查询操作。一个有着100台客户端的局域网程序,在日常某一时刻往往可能存在着500个access文件用于处理数据。这与大型后台数据库不同。不要简单认为access天生很弱,因为这与informix数据库的机制差不多。但是这种数据库确实应该彻底淘汰了。
      

  8.   

    负责任的数据库程序开发者,特别是开发商用系统的时候,会自觉地使用数据库事务保护。这是好事。但是Access的文件服务器方式是依赖于文件的临时独占来达到事务操作的,一旦你的客户端程序对数据库操作时间较长,例如长达10秒钟以上,并且客户机通常处于容易出现状况的地方(例如商场里边的收银员可能经常踢掉电源以便作弊),那么就很容易造成数据库损坏,从而造成程序无法共享数据库。此时使用文件来传递数据比共享数据库要可靠的多。
      

  9.   

    楼上的,好!!!
    呵呵我是一个坚决不用access的开发者,呵呵就是怕麻烦处理机制有问题
      

  10.   

    正因为此,因为我对informix和access都大规模应用过,所以我对 mySQL 数据库可以说非常反感。
      

  11.   

    OleDbConnection mycnn =new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\192.168.0.180\xxx\Link.mdb");
    xxx是局域网中192.168.0.180机器的一个文件夹,必须设置成共享,允许其它机器访问
    原来用过,可以的,不过最好用webservice了