测试连接成功,可总是提示错误 "Microsoft Jet 数据库引擎打不开文件'C:\Inetpub\wwwroot\InfoPublisher\db1.mdb'。 它已经被别的用户以独占方式打开,或没有查看数据的权限"
连接字符串是自动产生的,为@"Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Registry Path=;Jet OLEDB:Database Locking Mode=1;Data Source=""C:\Inetpub\wwwroot\InfoPublisher\db1.mdb"";Jet OLEDB:Engine Type=5;Provider=""Microsoft.Jet.OLEDB.4.0"";Jet OLEDB:System database=;Jet OLEDB:SFP=False;persist security info=False;Extended Properties=;Mode=ReadWrite;Jet OLEDB:Encrypt Database=False;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:Global Bulk Transactions=1";请高手指点~~~~~~

解决方案 »

  1.   

    把InfoPublisher  目录设置为Everyone完全控制
    2 db1.mdb设置every完全控制(其实只要ASPNET和IUSR_MACHINENAME两个用户就可以了)
      

  2.   

    将数据库所在文件夹加个EVERYONE用户,给多点权限。
      

  3.   

    http://www.cnblogs.com/dsclub/archive/2004/09/16/43897.aspxCSDN上的Web版朋友经常出现:对Access数据库文件进行Select操作没问题,但是Insert Delete Update都不能成功执行,被系统报告“数据库或对象为只读”。
    这样的情况先看数据库文件的属性是不是只读的,如果是把它修改过来!如果不是只读的,那么这种情况属于NTFS分区的权限问题,给Access文件Everyone完全控制就可以了。先在 文件夹选项->查看->去掉“使用简单文件共享”。这样保证了可以在看到安全标签选项!然后右键点Access文件->属性->安全->添加EveryOne->勾选完全控制。
    再通过Web程序对Access数据库文件进行更新的相关操作,就OK了。
    当然,还要注意在对Access数据库文件进行操作时一定保证不能被其它进程独占!
      

  4.   

    dsclub回答比较全面:)在测试连接时db1.mdb是否被Access软件打开了?
    如果要通过ASP.NET对db1.mdb进行操作,把Access软件关闭,如果有其它的软件打开了这个db1.mdb文件,把这些软件都关闭掉!因为对Access数据库文件进行操作时一定保证不能被其它进程独占!呵呵~纯属补充说明
      

  5.   

    按楼上的试了,问题变为"不能锁定文件."
    我确定数据库并没在外部被打开,也没在IDE里被打开,而且是首次试图打开连接(没有未关闭的连接).还请高手继续指点~~~~~