简述
关系型
优点:
1.嵌入式,我的理解就是跟着程序走,轻便,只需一个dll可享受所有服务
2.速度比Mysql快
3.配置简单
4.可移植
缺点:
自己查吧
工具
SQLite下载地址 : http://www.sqlite.org/download.html
SQLite可视化工具:SQLite Database Browser(这个百度一下,种类还不少)
1.部署
安装了SQLite后,其中有System.Data.SQLite,在项目引用
项目—属性—目标平台 与 下载的SQLite版本对应
-我下载的是.NET 4.5 x64的,目标平台更换为X64,否则报错,图如下
2.连接
private SQLiteConnection _connection;
private void ConnectionDb(string dbName, string path = null)
{
if(null == path)
path = Environment.CurrentDirectory;
var connectionString = string.Format(@"Data Source={0}\{1}.db;Pooling=true;FailIfMissing=false", path, dbName);
_connection = new SQLiteConnection(connectionString);
_connection.Open();
}
1.玩过数据库的人一看也明白什么意思了,就不加注释了
2.由此看出SQLite的后缀是.db
3.连接字符串的写法按网上的写法错误,估计不是版本更新了,就是没有测试就上传博文。错误图如下
4.连接字符串正确的写法可参考我的,或者在你安装SQLite后有一个”Test Application“的exe,可复制它的写法,运行后图如下
3.建库
1.在上面的连接给出的代码中已经有建库的代码,库名dbName
2.dbName,有,连接,无,创建
3.库中没有表是无法看到该库的
4.电脑上建一个txt,后缀改为db,就可以当做SQLite的库来用
4.建表
private void CreateTable(string tableName, List<string> columsName )
{
var colums = columsName.Aggregate( (current, colum) => current + ("," + colum) );
//建表的列时不用考虑列的类型
var sql = string.Format("create table if not exists {0}({1})", tableName, colums);
SQLiteCommand cmd = new SQLiteCommand(sql, _connection);
cmd.ExecuteNonQuery();
}
1.定义表的字段,不用考虑类型
2.ExecuteNonQuery来执行SQL语句
5.插入
private void Insert(string tableName, List<string> valueList)
{
var valus = valueList.Aggregate((current, valu) => current + string.Format(" ,'{0}' ", valu));
var sqlInsert = new SQLiteCommand(_connection);
sqlInsert.CommandText = string.Format("insert into {0} values({1})", tableName, valus);
sqlInsert.ExecuteNonQuery();
}
6.关闭
private void CloseDb()
{
_connection.Close();
}
题外话1:朋友接的私活,餐馆的管理程序,在数据库方面我给他推荐SQLite,这个我也只是听过,昨晚就先试用走通,暂时只是做了部署、连接、建库、建表、插入数据、关闭,结果图如下:
![]()
题外话2:安装SQLite后看到里面有EF6.0的dll,难道可以……