【问题标题】:How get current working path to accessdb with c#?如何使用 c# 获取 accessdb 的当前工作路径?
【发布时间】:2016-10-10 17:20:44
【问题描述】:

例如,我有一个连接字符串

connection = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0; 
              Data Source=D:\WindowsFormsApplication4\bin\Debug\some.mdb"); 

但它只能在我的电脑上正常工作。如何让它在所有计算机上正常工作?

【问题讨论】:

  • 不清楚的问题,详细描述你的问题
  • 例如我有一个connectiob字符串connection = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=D:\WindowsFormsApplication4\bin\Debug\some.mdb") ;但它只能在我的电脑上正常工作,我怎样才能让它在所有电脑上正常工作?
  • 请使用问题上的编辑链接添加更多信息
  • @AliceBu 我更新了我的答案
  • 您不应将连接字符串信息直接存储在代码中。您将它放在应用程序的 exe.config 中,任何安装工具都可以轻松修改它。使用 ConfigurationManager 类及其 ConnectionString 属性来检索您的信息。成千上万的例子在这里和广泛的网络上。

标签: c# ms-access


【解决方案1】:

你可以使用

string myconnectionstring = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=\\\\" + PCName + "\\datafolder\\some.mdb";

指定PCNAME

如果仍然存在问题,则将该数据库共享文件夹分配为映射驱动器并使用类似的东西。例如映射驱动器是 Z: (\PCName\ApplicationFolder)

更多详情请参考链接:Connecting to a database on a LAN network location

【讨论】:

    【解决方案2】:

    有问题的代码如下:

    Data Source=D:\WindowsFormsApplication4\bin\Debug\some.mdb"
    

    基本上,您将连接字符串硬编码到计算机上的某个位置。 “\bin\Debug”的使用尤其成问题,因为这几乎可以肯定与实际生产环境中的路径不同。

    如果可能,我建议将其放入某种配置文件中。

    【讨论】:

      【解决方案3】:

      总是从这里开始。

      https://www.connectionstrings.com/

      在你的情况下,我认为应该是这样的。

      Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\myFolder\myAccessFile.accdb;
      Persist Security Info=False;
      

      【讨论】:

        猜你喜欢
        • 2014-03-10
        • 2011-02-18
        • 2019-02-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-12-28
        • 2015-07-09
        • 2012-04-12
        相关资源
        最近更新 更多