System.Data.SQLite使用,静态与动态链接的区别,Bundle与非Bundle区别,同时兼容32位与64位,加密

来源:互联网 发布:基本款t恤 知乎 编辑:程序博客网 时间:2024/05/08 22:10

System.Data.SQLite官方文档


一、静态链接库与动态链接库的区别

    静态链接库不需要安装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 WindowsBinaries 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.csdn.net/sean4m/article/details/50211565

SharpPlus Sqlite Developer

更新比较慢,但2016年出了新版本,同样支持加密数据库,重要的是授权很便宜哦,授权很便宜,很便宜,便宜,宜...

http://www.sqlitedeveloper.com/

http://www.sharebank.com.cn/soft/softbuy.php?soid=21060

原创粉丝点击