SQLite:资源文件的数据库连接?

时间:2011-08-02 08:31:30

标签: c# sqlite

我正在创建一个需要使用SQLite连接到数据库文件的DLL。 不幸的是,由于我的dll用作Excel AddIn,我真的没有机会弄清楚我的dll所在的路径(应用程序引用Excel安装文件夹,所有的Reflection.Assembly内容都链接到Windows \ GAC文件夹或其他)。长话短说,我不能把我的SQLite文件放到我的.dll文件夹中,因为只使用带有相对路径的连接字符串就不会找到它,例如“Data Source = myfile.SQLite”,由于dll被用作Excel AddIn,我无法弄清楚原始dll的完整路径。

我的想法是将SQLite文件添加到我项目的资源中,但我不知道如何使用常规SQLite连接字符串连接到项目资源。即使可能吗?如果不是,还有其他任何想法我可以解决这个问题吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

有许多不太理想的解决方案:

1)在约定所确定的位置打开/创建sqlite数据库,例如C:\数据。这可能不太理想,但SQLite需要一个实际的数据文件,它不能使用例如直接使用资源或隔离存储(还有其他数据库,请参阅#3)。

2)使用独立存储,并在启动时将数据从隔离存储复制到临时位置,当应用程序关闭时(或其他一些“持久性事件”),将文件复制回隔离存储。

3)使用支持隔离存储的数据库,例如VistaDB。显而易见的缺点是许可证成本(虽然很小)。