在.exe c#应用程序中嵌入.sqlite数据库

时间:2018-05-02 16:23:08

标签: c# sqlite

我想将SQLite数据库嵌入到我的C#windows窗体应用程序(.exe)中,所以我可以给一个非常非技术的精明客户端只是.exe文件而不是别的。数据库是可读写的,我需要访问其数据源的路径,如下所示:

 SQLconnect = new SQLiteConnection("DataSource=" + path + ";Version=3;Compress=True;");

我也尝试将数据库保存到桌面上的文件夹,但SQLiteConnection.CreateFile(路径)似乎失败了,因为如果我将.exe文件放在bin / debug文件夹之外,.exe根本不会打开(但它会创建桌面上的必要文件夹)。

但是只要它在bin / debug中,它就会创建数据库文件并创建表,而.exe完美地运行。在应用程序中的任何位置都没有出现错误。

1 个答案:

答案 0 :(得分:3)

要包含SQLite dll,您必须修改引用的属性并将其标记为Embedded Resource。您可能必须使用ILMerge请参阅this

您无法嵌入数据库。因此,您有以下两种选择:

  1. 您可以创建In-Memory/Temporary database

    var connection = new SQLiteConnection(" Data Source =:memory:");

  2. 随时随地创建数据库。在应用程序启动时,您可以创建数据库并为其设定种子。请参阅this