访问数据库的管理路径

本文关键字:路径 管理 数据库 访问 | 更新日期: 2023-09-27 18:10:55

我有一个使用数据库的c#项目,目前数据库没有嵌入到exe或c#项目中。我使用以下路径:

connection.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:'Users'Anant'Documents'WebsiteSearch.accdb;
                                            Persist Security Info=False;";

有没有办法我可以添加网站研究。Accdb到项目中,并相应地更改路径。这个想法是当有人在其他计算机上启动exe时,我不想总是改变数据库的路径。

访问数据库的管理路径

对于这种情况,我们通常将数据库放在应用程序文件夹中。如果把db放在bin/debug中,那么访问db

总是很容易的。

你的代码会变成这样

connection.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;
Data Source=WebsiteSearch.accdb;
Persist Security Info=False;";

或者

connection.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;
Data Source="+AppDomain.CurrentDomain.BaseDirectory+"WebsiteSearch.accdb;
Persist Security Info=False;";

您可以使用|DataDirectory|:

connection.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|'WebsiteSearch.accdb; Persist Security Info=False;";

|DataDirectory|是一个替换字符串,它消除了硬编码到数据库的完整路径的需要。

你可以在运行时调用AppDomain.SetData来设置它的值,如果你不这样做,它将默认为应用程序的文件夹,所以最简单的选择是将数据库包含在与应用程序可执行文件相同的文件夹中。

可以使用相对路径

ConnectionString = "Data Source=|DataDirectory|'WebsiteSearch.accdb";

或者在c#代码中

  string executable = System.Reflection.Assembly.GetExecutingAssembly().Location;
    string path = (System.IO.Path.GetDirectoryName(executable));
    AppDomain.CurrentDomain.SetData("DataDirectory", path);

在解决方案资源管理器中将accdb文件标记为" Content ",并将其设置为" Copy if Newer "。

如果你每次都重新编译,那么你也可以把你的连接字符串放在app.config文件中,并将它部署到你的机器上。当你想改变连接字符串时,你可以简单地编辑配置文件,不需要每次都重新编译代码。