Sqlite 常用操作及使用EF连接Sqlite
Sqlite是一个很轻,很好用的数据库。兼容性很强,由于是一款本地文件数据库,不需要安装任何数据库服务,只需引入第三方开发包就可以。Sqlite的处理速度比MySql和PostgreSQL更快,性能很不错。毕竟本地数据库读写操作是直接从本地读取,不需要网络层传输。
.net 下的使用:
第一步引入SQlite开发包,这里需要注意选择System.Data.Sqlite包,如果是.net core 程序的话就选择core版本。

Sqlite支持EF,需要使用EF操作的话就引入下图所示的开发包,我用的是.net core 所以引入的是CORE版本,

引入成功后就可以操作了,跟传统数据库一样,第一步是连接数据库,由于Sqlite是本地数据库,所以连接地址就是数据库文件的存放路径
//数据库连接地址
public string path_DB = Directory.GetParent(System.Environment.CurrentDirectory).FullName + "/FinanceDataFrameWorkCore/net5.0/financeData.sqlite";
//连接数据库,连接成功后打开通道
public SQLiteConnection m_dbConnection;
public void connectToDatabase(string DBPath, string Version = "3")
{
Console.WriteLine(DBPath); m_dbConnection = new SQLiteConnection("Data Source=" + DBPath + ";Version=" + Version + ";");
m_dbConnection.Open();
}
//然后就可以 进行数据库操作了,SQlite支持ADO操作,所以跟使用ADO.net 操作数据库一样,设置SQLiteCommand ,然后执行。
public int ExecuteNonQuery(string LiteSQL)
{
SQLiteCommand sQLiteCommand = new SQLiteCommand(LiteSQL, m_dbConnection);
return sQLiteCommand.ExecuteNonQuery();
}
//查询数据表格
public DataTable GetSelectTable(string LiteSQL)
{
SQLiteCommand cmd = new SQLiteCommand(LiteSQL, m_dbConnection);
SQLiteDataAdapter sQLiteDataAdapter = new SQLiteDataAdapter(cmd);
DataSet dataSet = new DataSet();
sQLiteDataAdapter.Fill(dataSet);
return dataSet.Tables[0];
}
//一个简单的SqliteHelper
public class SqliteHelper
{
public SQLiteConnection m_dbConnection; public string path_sqlite = Directory.GetParent(System.Environment.CurrentDirectory).FullName + "/FinanceDataFrameWorkCore/net5.0/financeData.sqlite"; public SqliteHelper()
{
connectToDatabase(path_sqlite);
} public void createNewDatabase(string DataBaseName = "demo.sqlite")
{
SQLiteConnection.CreateFile(DataBaseName);
} public void connectToDatabase(string DBPath, string Version = "3")
{
Console.WriteLine(DBPath); m_dbConnection = new SQLiteConnection("Data Source=" + DBPath + ";Version=" + Version + ";");
m_dbConnection.Open();
} public void CloseConnection()
{
m_dbConnection.Close();
} public int ExecuteNonQuery(string LiteSQL)
{
SQLiteCommand sQLiteCommand = new SQLiteCommand(LiteSQL, m_dbConnection);
return sQLiteCommand.ExecuteNonQuery();
} public DataTable GetSelectTable(string LiteSQL)
{
SQLiteCommand cmd = new SQLiteCommand(LiteSQL, m_dbConnection);
SQLiteDataAdapter sQLiteDataAdapter = new SQLiteDataAdapter(cmd);
DataSet dataSet = new DataSet();
sQLiteDataAdapter.Fill(dataSet);
return dataSet.Tables[0];
} public SQLiteDataReader GetSelectTableReader(string LiteSQL)
{
SQLiteCommand sQLiteCommand = new SQLiteCommand(LiteSQL, m_dbConnection);
return sQLiteCommand.ExecuteReader();
}
}
}
如果要使用ef操作SQlite的话也可以,sqlite的ef操作跟其他数据库一样。指定好数据库实体表名称,实体字段名保持和数据库一致,然后配置好数据库上下文。

数据库关联上下文配置
public class FinanceDataContext : DbContext
{
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
//注入Sqlite链接字符串 string path_DB = Environment.CurrentDirectory + "/financeData.sqlite"; optionsBuilder.UseSqlite($"Data Source={path_DB}");
}
public DbSet<FinanceData> FinanceData { set; get; } }
配置好实体后就可以进行操作啦,我这里没有配置实体自动生成表,需要在数据库建好数据表跟实体里保持一致就可以了。然后就可用ef +Linq进行数据库读写操作了
Sqlite 常用操作及使用EF连接Sqlite的更多相关文章
- sqlite 常用操作
#查看当前数据库信息 .database #列出所有表 .tables #列出所有字段 .schema 或者 .schema table_name #清空一张表 delete from tabl ...
- 让EF飞一会儿:如何用Entity Framework 6 连接Sqlite数据库
获取Sqlite 1.可以用NuGet程序包来获取,它也会自动下载EF6 2.在Sqlite官网上下载对应的版本:http://system.data.sqlite.org/index.html/do ...
- Unity3D连接sqlite数据库操作C#版
unity3d有自己对应的sqlite.dll分别需要三个文件 1.Mono.Data.Sqlite.dll 在unity安装文件“Unity\Editor\Data\MonoBleedingEdge ...
- C++连接sqlite数据库的增删查改操作
这个代码是接着上次说的,要用VS2013操作数据库,首先要配置好环境,创建好数据库表等. 不明白的翻我前面2篇看看~~~ 关于前面的用到的goto 语句,这个我也是参考其他博主写的,现在我注释掉了,毕 ...
- 应用EF访问SQLite数据
创建项目,应用EF访问SQLite 1.创建项目 项目结构初始结构如下图所示,Netage.Data.SQLite 类库项目用于定义访问数据的接口和方法,Netage.SQLiteTest.UI 控制 ...
- Android内部自带的SQLite数据库操作dos命令
1:什么叫做SQLite数据库 Android系统内核是Linux系统,Android系统很特殊,他自带了一个SQLite数据库,轻量型的一款嵌入式的数据库 它占用资源非常的低,在嵌入式设备中,可能只 ...
- C#连接SQLite数据库方法
--结合Enterprise Library连接,操作SQLite 企业库是我们常用的框架之一,可以从http://entlib.codeplex.com/下载Enterprise Library 5 ...
- C#连接SQLite的字符串
一.C#在不同情况下连接SQLite字符串格式 1.Basic(基本的) Data Source=filename;Version=3; 2.Using UTF16(使用UTF16编码) Data S ...
- SQLite之C#连接SQLite
SQLite是一个开源.免费的小型的Embeddable RDBMS(关系型数据库),用C实现,内存占用较小,支持绝大数的SQL92标准,现在已变得越来越流行,它的体积很小,被广泛应用于各种不同类型的 ...
随机推荐
- 作为Bootstrap中文站维护者-我们再次翻译BootstrapVue项目
点击立即进入BootstrapVue中文站 http://code.z01.com/bootstrap-Vue Bootstrap-Vue 基于全球最流行的前端框架组合应用系统 项目介绍 Bootst ...
- react之路由
功能:让用户从一个视图(组件)导航到另一个视图(组件) 前端路由是一套映射规则,在React中,是URL路径与组件的对应关系 使用React路由简单来说,就是配置路径和组件 路由的使用 1.安装路由 ...
- 用Python画一个八角形代码示例
import turtle turtle.color("purple","yellow") turtle.speed(1) turtle.fd(100) t ...
- CODING 代码资产安全系列之 —— 构建全链路安全能力,守护代码资产安全
本文作者:王振威 - CODING 研发总监 CODING 创始团队成员之一,多年系统软件开发经验,擅长 Linux,Golang,Java,Ruby,Docker 等技术领域.近两年来一直在 COD ...
- 【POJ2018】【实数域上的二分】【dp】
传送门:http://poj.org/problem?id=2018: 大概题意是求一个正整数数列 A 的平均数最大 长度不小于 L 的子段 我们可以二分答案 判定是否有一个长度不小于L的子段 平均数 ...
- C/C++ Qt TabWidget 实现多窗体创建
在开发窗体应用时通常会伴随分页,ToolBar组件可以实现顶部工具栏菜单,每一个ToolBar组件关联到一个TabWidget组件的Tab标签内,这样我们就可以实现一个复杂的多窗体分页结构,此类结构也 ...
- 【1】蛋白鉴定软件之X!Tandem
目录 1. 简介 2.下载安装 3. 软件试用 4. 结果 5. FAQ 1. 简介 X!Tandem是GPM:The Global Proteome Machine(主要基于Web的开源用户界面,用 ...
- C语言 字符串指针和字符串数组使用区别
字符串指针和字符串数组使用区别 1 #include <stdio.h> 2 #include <string.h> 3 #include <stdlib.h> 4 ...
- C语言按行读入文件
getline() 函数无论一行多长,动态分配内存读入行 1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <s ...
- perl中tr的用法(转载)
转载:http://blog.sina.com.cn/s/blog_4a0824490101hncz.html (1)/c表示把匹配不上的字符进行替换. $temp="AAAABCDEF&q ...