SQLite使用总结(C#版 潘鹏)

简述

关系型

优点:

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,否则报错,图如下
    SQLite使用总结(C#版 潘鹏)_第1张图片

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.连接字符串的写法按网上的写法错误,估计不是版本更新了,就是没有测试就上传博文。错误图如下
SQLite使用总结(C#版 潘鹏)_第2张图片

4.连接字符串正确的写法可参考我的,或者在你安装SQLite后有一个”Test Application“的exe,可复制它的写法,运行后图如下
SQLite使用总结(C#版 潘鹏)_第3张图片

3.建库

1.在上面的连接给出的代码中已经有建库的代码,库名dbName

2.dbName,有,连接,无,创建

3.库中没有表是无法看到该库的

4.电脑上建一个txt,后缀改为db,就可以当做SQLite的库来用

4.建表

private void CreateTable(string tableName, List 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 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,这个我也只是听过,昨晚就先试用走通,暂时只是做了部署、连接、建库、建表、插入数据、关闭,结果图如下:
SQLite使用总结(C#版 潘鹏)_第4张图片
题外话2:安装SQLite后看到里面有EF6.0的dll,难道可以……

你可能感兴趣的:(❤数据库)