通过c#连接Access

时间:2009-11-25 09:31:55

标签: c# .net ms-access ms-access-2007 connection-string

我需要打开与远程访问数据库的连接。    在本地环境中远程访问db工作得很好。    当我从生产服务器(其他服务器)运行此应用程序时,它失败并显示消息

”  它已由其他用户专门打开,或者您需要获得查看其数据的权限。 “

我的代码:

   conString =
       @"Provider=Microsoft.JET.OLEDB.4.0;"
     + @"data source=" \\150.248.248.38\d$\TestApp\vending.mdb;Jet OLEDB:Database Password=1234;";

      OleDbConnection connAccess = new OleDbConnection(conString);


    try
    {

        connAccess.Open();

        objDiningRoom.Connection = connAccess;

       ....
    }
    catch (Exception ex)
    {


    }
    finally
    {
        connAccess.Close();
        connAccess.Dispose();
    }

*它在其他地方不开放 感谢

2 个答案:

答案 0 :(得分:0)

这看起来像是权限问题。 确保您将IUSR帐户(或ASP.NET运行的任何帐户)授予您的数据库读/写权限。

答案 1 :(得分:0)

你可以尝试:here 从那里复制:

  
      
  • 当您的数据库文件以独占方式打开时,通常会发生这种情况   通过另一个申请(通常是MS
      访问)。关闭所有应用程序   使用此数据库,然后重试。
  •   
  • 如果Internet信息正在使用该帐户,则可能会发生此错误   服务器(IIS),(通常是IUSR),确实   没有正确的Windows NT
      基于文件的数据库的权限   或者包含
    的文件夹   文件。
  •   
  • 检查文件和文件夹的权限。请确保你   有能力创造和/或   销毁任何临时文件。   通常会创建临时文件   在与数据库相同的文件夹中,   但也可以在中创建文件   其他文件夹,如/ Winnt。如果   你使用网络路径   数据库(UNC或映射驱动器),   检查共享的权限,   文件和文件夹。
  •   
  • 检查以确保文件和数据源名称(DSN)是   没有标记为独家。
  •   
  • 简化。使用使用本地驱动器号的系统DSN。移动   数据库到本地驱动器如果
      必须进行测试。
  •   
  • “其他用户”可能是Visual InterDev。关闭任何Visual InterDev
      包含数据的项目
      连接到数据库。
  •   
  • 访问本地Microsoft Access时也可能出现此错误   数据库链接到一个表所在的表   table位于一个Access数据库中   网络服务器。在这种情况下,
      请参阅以下文章   在Microsoft知识库中   解决方法:Q189408 PRB:ASP失败   访问IIS 4.0下的网络文件
  •