“无法打开数据库文件”。开发 C# 控制台应用程序时是否必须放置 sqlite 数据库的完整物理位置

SP萨卡

我创建了一个 Sqlite 数据库mydatabase.sqlite并将它放在我App_Data的控制台应用程序项目内的文件夹中。我收到一个错误:

无法打开数据库文件

使用 sqlite 和 C# 开发控制台应用程序时。

当我使用

string cs = @"Data Source=App_Data\mydatabase.sqlite;Version=3";

我正进入(状态

无法打开数据库文件错误;

但是当我使用

string cs = @"Data Source=C:\Users\UP_SW02\Desktop\ConsoleApplication1\ConsoleApplication1\App_Data\mydatabase.sqlite;Version=3";

应用程序运行正常。

是否有可能在不使用完整物理位置的情况下使用 Sqlite 数据源?

谢谢..

尼尔古兹

程序中使用的所有非根路径都相对于启动应用程序的文件夹。请注意,这不一定是应用程序本身所在的文件夹。您必须非常小心这些路径。

您似乎在寻找与您自己的应用程序相关的文件夹。有一个简单的方法来获得它。如果您Windows.Forms的项目中包含命名空间,则可以从System.Windows.Forms.Application.ExecutablePath以下位置获取可执行文件的路径

// Get app folder
String appFolder = Path.GetDirectoryName(Application.ExecutablePath)
// Combine with sqlite db path
String dbPath = Path.Combine(appFolder, @"App_Data\mydatabase.sqlite");
// Build connection string
string cs = String.Format(@"Data Source={0};Version={1}", dbPath, 3);

Application.ExecutablePath如果您不使用 Windows 窗体程序Assembly.GetExecutingAssembly().Location另一种方法, 来自System.Reflection命名空间。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章