出售域名 11365.com.cn
有需要请联系 16826375@qq.com
在手机上浏览
在手机上浏览

Asp.net使用SQLite

发布日期:2018-11-26

概述
SQLite是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中,它的设计目标是嵌入式的。
SQLite是文件数据库系统,类似Access。
SQLite使用非常广泛,谷歌的安卓系统使用的数据就是SQLite。

下载
从官网下载 https://www.sqlite.org/download.html
文件名称带bundle的:表示动态库是按混合模式编译的,在使用的时候只需要System.Data.SQLite.dll就可以了。
文件名称不带bundle的:表示将非托管部分和托管部分分别编译,System.Data.SQLite.dll不能独立使用,还需要有SQLite.Interop.dll才能使用。
System.Data.SQLite.dll有32位和64位的区别,我用64位的DLL在IIS上运行还要在程序池高级设置里设置成“启用32位应用程序”才能用。
后来在网上找到一个DLL,不区分32位还是64位的DLL,如果有需要可以点击这里下载

工具
1)管理工具
Navicat for SQLite 是一个强大而全面的 SQLite 图形用户界面,它提供了一套完整的数据库管理和开发功能。优化你的 SQLite 工作流程和生产力-你可以快速、安全地创建、组织、访问和共享信息。
大家可以在这里下载 http://www.navicat.com.cn/products/navicat-for-sqlite 

点击左上角“文件”->“新建连接”。


 
连接名:随便填写。
类型:已存在数据库文件选择“现有的数据库文件”,否则选择:“新建SQLite 3”。
数据库文件:选择一个文件路径。
连接成功后,就可以查看该数据库的信息了


 
2)数据库转换工具
如何从SQLSERVER或者MYSQL转换成SQLite?你需要一个工具,从SQLSERVER转换我使用的是SQLServer To SQLite DB Converter,大家可以百度下。
 
也可以用DB2DB(SQLSERVER转MYSQL我就使用的这个工具),参考:https://www.cnblogs.com/overblue/p/3874971.html


连接数据库
数据库文件一般放在App_Data目录下,App_Data目录下的文件是被保护的,放在其它目录就要小心被人直接下载了。
数据库链接的写法:

<add name="SQLConnSTR" providerName="Sqlite" connectionString="Data Source=|DataDirectory|\singoocmsv1.5.db;Pooling=true;FailIfMissing=false" />


主要是“Data Source=|DataDirectory|\singoocmsv1.5.db;Pooling=true;FailIfMissing=false”这段连接字符串。需要注意的是指定的Data Source是一个物理路径。
连接SQLite数据库,首先要引用System.Data.SQLite.DLL,然后使用ado.net的SQLiteConnection对象来连接。
如果要切换多种数据库,那还得要写ORM模块,考虑到各种数据库的差异(比如SQLSERVER的“Top”,Mysql就没有),自己写还是很麻烦的,推荐使用SqlSugar,官方网站:http://www.codeisbug.com/。

操作数据库
数据库的操作无非就是增/删除/改/查,分页、存储过程、函数等。SQLite没有存储过程等复杂的功能,分页也不像SQLSERVER的row_number over,而是类似于MYSQL的Limit。所以使用ORM是很明智的选择,因为你不需要熟悉这些细节。
如:

dbo.Insertable<UserInfo>(entity).ExecuteReturnIdentity();
dbo.Updateable<UserInfo>(entity).ExecuteCommand();
dbo.Deleteable<UserInfo>(id).ExecuteCommand();
dbo.GetSimpleClient<UserInfo>().GetById(id);
dbo.Queryable<UserInfo>().Take(topNum).ToList();
dbo.Queryable<UserInfo>().Where(condition).OrderBy(sort).ToPageList(pageIndex, pageSize, ref totalCount);

总结
SQLite是轻型的文件数据库系统,如果你的应用负载偏低,预算较小的话,推荐选择SQLite。本网站和一些模板使用的就是Asp.net(MVC) + SQLite。