我创建了一个 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] 删除。
我来说两句