我想将SQLite数据库嵌入到我的C#windows窗体应用程序(.exe)中,所以我可以给一个非常非技术的精明客户端只是.exe文件而不是别的。数据库是可读写的,我需要访问其数据源的路径,如下所示:
SQLconnect = new SQLiteConnection("DataSource=" + path + ";Version=3;Compress=True;");
我也尝试将数据库保存到桌面上的文件夹,但SQLiteConnection.CreateFile(路径)似乎失败了,因为如果我将.exe文件放在bin / debug文件夹之外,.exe根本不会打开(但它会创建桌面上的必要文件夹)。
但是只要它在bin / debug中,它就会创建数据库文件并创建表,而.exe完美地运行。在应用程序中的任何位置都没有出现错误。
答案 0 :(得分:3)
要包含SQLite dll,您必须修改引用的属性并将其标记为Embedded Resource
。您可能必须使用ILMerge请参阅this。
您无法嵌入数据库。因此,您有以下两种选择:
您可以创建In-Memory/Temporary database。
var connection = new SQLiteConnection(" Data Source =:memory:");
随时随地创建数据库。在应用程序启动时,您可以创建数据库并为其设定种子。请参阅this。