SQLite在C#中的安装与操作
SQLite 介绍
SQLite,是一款轻型的数据库,用于本地的数据储存。
先说说优点,它占用资源非常的低,在嵌入式设备中需要几百K的内存就够了;作为轻量级数据库,他的处理速度也足够快;支持的的容量级别为T级;独立: 没有额外依赖;开源;支持多种语言;
我的用途
在项目开发中,需要做一次数据数据同步。因为数据库实时数据的同步,需要记录更新时间,系统日志等等数据;当然,你也可以选择写ini和xml等等配置文件来解决,但是都如数据库可读性高不是。
安装
1. 引用 .NET 驱动 http://system.data.sqlite.org/index.html/doc/trunk/www/index.wiki

这三个文件,在项目中,引用之后就可以进行创建数据库查询数据操作。
2.使用vs提供的包管理工具Nuget进行项目引用。

Nuget包管理工具

搜索SQLite安装对应的包,下载完成后就自动在项目中引用了。
使用
创建数据库
//创建一个数据库
SQLiteConnection.CreateFile("Database.sqlite");
操作数据库
//创建连接字符串
SQLiteConnection conn = new SQLiteConnection("Data Source=Database.sqlite;Version=3;");
//这是数据库登录密码
conn.SetPassword("");
//打开数据库
conn.Open();
string query = "create table table1 (id INTEGER, name VARCHAR)";
//创建命令
SQLiteCommand cmd = new SQLiteCommand(query, conn);
//执行命令
cmd.ExecuteNonQuery();
//释放资源
conn.Close();
插入数据
SQLiteConnection conn = new SQLiteConnection("Data Source=Database.sqlite;Version=3;");
conn.Open();
string query = "insert into table1 (id,name) values(1,'小明')";
SQLiteCommand cmd = new SQLiteCommand(query, conn);
cmd.ExecuteNonQuery();
conn.Close();
cmd.Dispose();
查询数据
using (SQLiteConnection conn = new SQLiteConnection("Data Source=Database.sqlite;Version=3;"))
{
conn.Open();
string query = "select * from table1";
SQLiteCommand cmd = new SQLiteCommand(query, conn);
SQLiteDataAdapter da = new SQLiteDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
}

可视化工具
SQLiteStudio 可视化工具 https://sqlitestudio.pl
连接数据库

查表

设置主键,已经自增。
主键自增类型必须是 INTEGER类型

其他
1.SQLite .NET驱动设置数据库读取密码
.net驱动之中,提供了单独设置密码和登录密码
using (SQLiteConnection conn = new SQLiteConnection("Data Source=Database.sqlite;Version=3;"))
{
conn.Open();
//设置数据库密码
conn.ChangePassword("");
conn.Clone();
}
登录带密码的数据库
using (SQLiteConnection conn = new SQLiteConnection("Data Source=Database.sqlite;Version=3;"))
{
conn.SetPassword("");
conn.Open();
string query = "select * from table1";
SQLiteCommand cmd = new SQLiteCommand(query, conn);
SQLiteDataAdapter da = new SQLiteDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
conn.Clone();
}

密码正确查询成功

密码错误查询异常
还有就是密码设置错误,打开数据库后数据库状态依旧是打开状态,但是查询后出现异常无法查询。

使用 dotnet驱动设置密码之后,使用其他框架驱动貌似就无法打开了。
FQA
1.大量数据频繁Insert特别慢怎么办?
解决办法是使用事务来Insert数据.
SQLite给出的解释是:正常执行Insert,每一次执行都占用一次IO,而使用事务执行,直到Insert结束只占用一次IO;
执行事务Insert代码
private bool QueryTran(List<string> queryList)
{
SQLiteConnection conn = new SQLiteConnection("Data Source=DataBase;Version=3;");
SQLiteCommand cmd = conn.CreateCommand();
conn.Open();
SQLiteTransaction tran = conn.BeginTransaction();
bool check = false;
try
{
foreach (string item in queryList)
{
cmd.CommandText = item;
cmd.ExecuteNonQuery();
}
tran.Commit();
check = true;
}
catch (Exception ex)
{
tran.Rollback();
check = false;
throw ex;
}
finally
{
conn.Close();
}
return check;
}
SQLite在C#中的安装与操作的更多相关文章
- sqlite在火狐中安装及使用
1.SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中.它是D.RichardHipp建立的公有领域项目.它的设计目标是嵌入式的,而且目前已经在很多嵌入 ...
- python操作三大主流数据库(1)python操作mysql①windows环境中安装python操作mysql数据库的MySQLdb模块mysql-client
windows安装python操作mysql数据库的MySQLdb模块mysql-client 正常情况下应该是cmd下直接运行 pip install mysql-client 命令即可,试了很多台 ...
- Pyqt 获取windows系统中已安装软件列表
开始之前的基础知识 1. 获取软件列表 在Python的标准库中,_winreg可以操作Windows的注册表.获取已经安装的软件列表一般是读去windows的注册表: SOFTWARE\Micros ...
- 传递给数据库 'master' 中的日志扫描操作的日志扫描号无效
错误:连接数据库的时候提示:SQL Server 检测到基于一致性的逻辑 I/O 错误 校验和不正确 C:\Documents and Settings\Administrator>" ...
- 用 EasyBCD 在 Win7/8 中硬盘安装 Ubuntu
写在前面: 1. 我装的是ubuntu 13.10 64位,不一样的地方是,从casper文件夹复制出来的文件不是vmlinuz,而是vmlinuz.efi,相应的,menu.lst里也要将vmlin ...
- [转载]在C#中使用官方驱动操作MongoDB
在C#中使用官方驱动操作MongoDB 8.1)下载安装 想要在C#中使用MongoDB,首先得要有个MongoDB支持的C#版的驱动.C#版的驱动有很多种,如官方提供的,samus. 实现思路大都类 ...
- VMware虚拟机中如何安装VMWare-Tools详解
VMware虚拟机中如何安装VMWare-Tools详解 好处:可以支持图形界面,可以支持共享文件功能等 VMware虚拟机中如何配置显 VMware作为一款虚拟机利器,很多人都利用它来实现Linux ...
- C#中对Excel进行操作
工作中要处理一批数据,主要是处理从别处导出来的Excel表格(大概有一千多行,三十多列),拿到表格对Excel表格进行分析,按照一定的规则进行拆分成为一万多行的数据:首先这个需求要用程序进行处理的背景 ...
- clearcase 中一些概念和操作
clearcase 中一些概念和操作 视图 常用命令 ClearCase 安装和使用的一些FAQ 参考 ClearCase具体的说是做配置管理的工具,只是SCM管理工具其中的一种.是RATIONAL公 ...
随机推荐
- CJOJ 1976 二叉苹果树 / URAL 1018 Binary Apple Tree(树型动态规划)
CJOJ 1976 二叉苹果树 / URAL 1018 Binary Apple Tree(树型动态规划) Description 有一棵苹果树,如果树枝有分叉,一定是分2叉(就是说没有只有1个儿子的 ...
- 阿里云VPC绑定EIP实现SNAT
阿里云VPC需要了解的几个问题 什么是VPC 虚拟私有网络(Virtual Private Network),能够帮助用户基于阿里云构建出一个隔离的网络环境.用户可以完全掌控自己的虚拟网络,包括选择自 ...
- STM32使用cube生成的程序后在keil5编译后首次SWD可以下载再次下载不行的解决办法。
使用cube配置导出工程在keil5编译后首次SWD下载可以再次下载不行的解决办法. 1原因: cube使用的是HAL库,初始化语句里面禁用了调试功能. 在stm32f1xx_hal_msp.c中 _ ...
- Android源码博文集锦4
Android精选源码 一款常见的自定义加载动画 android开源记账项目CoCoin Android自定义view:拖拽选择按钮 Android指纹识别 一个折线图,它提供了几个非常实用的功能 一 ...
- Linux服务器中安装Oracle
笔者手动安装成功 一,oracle安装前的准备与配置 1,修改stsctl.conf文件 Linux是为小文件设计的,Oracle数据库安装需要占用较多资源,要把各项参数调大. 使用vi编辑/etc/ ...
- CentOS Linux 新建oracle数据库实例并连接
CentOS Linux 新建oracle数据库实例 安装好oracle之后,首先想到的那就是自己建一个库来看看效果喽. 创建的过程如下文章所说,http://blog.chinaunix.net/u ...
- RabbitMQ入门与使用篇
介绍 RabbitMQ是一个由erlang开发的基于AMQP(Advanced Message Queue)协议的开源实现.用于在分布式系统中存储转发消息,在易用性.扩展性.高可用性等方面都非常的优秀 ...
- python实战===实现读取txt每一行的操作,账号密码
最近搞到了一批163邮箱的账号和密码,但是里面有部分账号不能用,密码是错的. 以此为背景 人工手动挨个登录检查效率太低! 于是写了下面这个脚本: import linecache import smt ...
- Maven注意事项
Maven好处: 1.依赖管理:对jar包统一管理 2.项目构建:项目编码完成后,对项目进行编译.测试.打包.部署,实现项目一键发布1.配置环境变量 注意:maven工具必须有jdk环境.并且: ...
- Mahout安装部署
0x01 简介 Mahout 是一套具有可扩充能力的机器学习类库.它提供机器学习框架的同时,还实现了一些可扩展的机器学习领域经典算法的实现,可以帮助开发人员更加方便快捷地创建智能应用程序.通过和 Ap ...