System.Data.SQLite使用,静态与动态链接的区别,Bundle与非Bundle区别,同时兼容32位与64位,加密
一、静态链接库与动态链接库的区别
静态链接库不需要安装vc++运行库,而动态链接库则必须安装vc++运行库,这点在官方网页上说得很清楚了。
二、Bundle与非Bundle的区别
Bundle不需要安装SQLite.Interop.dll,而非Bundle则必须把SQLite.Interop.dll放到输出目录。
三、旧版本与新版本在使用上的一点区别
新版本sqlite库会以独占文件的方式打开数据库文件,除非程序结束,否则其他程序不能访问、修改或删除数据库文件;而旧版本的链接库不独占数据库文件,期间可以给数据库文件改名甚至删除,其他程序也能访问此数据库文件。哪个版本改成这样的,就没有具体深入研究.目前我的需要是不独占的,版本是1.0.80
四、编译any cpu(同时兼容x86与x64),这点官方文档也有给出说明,只是不细心看的话很难发现。此处一步步告诉你
1.一定是非Bundle的!非Bundle的!非Bundle的!
注意哦!分别下载Binaries for 32-bit Windows与Binaries for 64-bit Windows的zip文件
2.在你的程序目录里新建两个文件夹x86与x64,分别解压并复制两种版本的SQLite.Interop.dll到相应的目录里,如下(官方文档有说明哈).
3.使用 System.Data.SQLite.dll ,这里有两种方法
方法一:从第1步下载回来的zip包里,仔细看, 32位与64位版本里的两个System.Data.SQLite.dll,是不是一样的呢?用文件MD5比较一下,确实是同一个文件.那你也可以不用NuGet包,直接复制zip包里的System.Data.SQLite.dll到你的程序里用。
方法二:使用SQLite NuGet包,官方有说明,看下图
翻译过来简单说就是,同时包含了x86与x64,但.net framwork与vc++运行库都需要安装.
如何安装sqlite nuget呢? VS 如下图
具体的操作,自己去弄了.
这时你的程序就同时具备32位与64位的能力了.
五、Sqlite数据库加密
不加密的数据库,谁拿到都能打开与编辑,相信很多人都不知道sqlite数据库还能加密.嘻嘻。具体加密与解压的方法,各位自行搜索了,我不再多说。
我要介绍能访问加密数据库的sqlite管理工具:
SQLite Expert Professional 3
希望各位支持正版.默认此工具并不支持访问加密的数据库,需要把SQLite.Interop.dll作为它的引擎.具体看这里另一位博友的文章
http://blog.****.net/sean4m/article/details/50211565
SharpPlus Sqlite Developer
更新比较慢,但2016年出了新版本,同样支持加密数据库,重要的是授权很便宜哦,授权很便宜,很便宜,便宜,宜...