C# 在不指定完整路径名的情况下,连接到保存在电脑任意位置的数据库(MS Access)的命令是什么

C# 在不指定完整路径名的情况下,连接到保存在电脑任意位置的数据库(MS Access)的命令是什么,c#,C#,如果您使用的语言允许您构建路径,例如C#: 默认情况下,将为您提供所有用户共享的c:\ProgramData文件夹的路径 因此: 通常,您不会在代码中存储固定路径。这将使您的应用程序很难安装到客户的PC上。 认识到这一点,NET framework提供了一个基础结构,用于将此类信息存储在外部基于XML的文件中(在发布应用程序时命名为yourexename.exe.config,在项目内部命名为app.config。 您可以在那里存储需要逐个客户更改的此类信息 所以你的app.config可以用这

如果您使用的语言允许您构建路径,例如C#:

默认情况下,将为您提供所有用户共享的
c:\ProgramData
文件夹的路径

因此:


通常,您不会在代码中存储固定路径。这将使您的应用程序很难安装到客户的PC上。
认识到这一点,NET framework提供了一个基础结构,用于将此类信息存储在外部基于XML的文件中(在发布应用程序时命名为
yourexename.exe.config
,在项目内部命名为
app.config

您可以在那里存储需要逐个客户更改的此类信息

所以你的app.config可以用这种方式制作一个部分

string AccessDbPath = Path.Combine(
    Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), 
    "YourAppFolder\\TaxApp.accdb");
您甚至可以使用“项目属性”菜单存储整个连接字符串,并在“设置”页面中添加ConnectionString类型的新条目

同样,您在其中键入的内容将存储在app.config文件的特定部分中

string dbFile = ConfigurationManager.AppSettings["DatabasePath"].ToString();
connection = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;
                                  Data source =" + dbFile + 
                                 ";Persist Security Info=False");

请参见

这是无法避免的。您需要指定路径。(参考点的全部或部分,但仍然…)也许您的意思是将路径存储在配置文件中,您可以在其中轻松更改它以适应您的客户环境
string AccessDbPath = Path.Combine(
    Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), 
    "YourAppFolder\\TaxApp.accdb");
<appSettings>
   <add key="DatabasePath" value="C:\programdata\MyApp\Database.accdb" />
</appSettings>
string dbFile = ConfigurationManager.AppSettings["DatabasePath"].ToString();
connection = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;
                                  Data source =" + dbFile + 
                                 ";Persist Security Info=False");
<connectionStrings>
  <add name="MyDb" connectionString="Provider=Microsoft.ACE.OLEDB.12.0;
             Data source=C:\programdata\MyApp\Database.accdb;
            Persist Security Info=False";/>
</connectionStrings>
string myConnectionString = ConfigurationManager.ConnectionStrings["MyDb"].ConnectionString;