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("1234");
//打开数据库
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("123456");
  conn.Clone();
}

登录带密码的数据库

using (SQLiteConnection conn = new SQLiteConnection("Data Source=Database.sqlite;Version=3;"))
{
  conn.SetPassword("123456");
  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#中的安装与操作技巧,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • C#简单访问SQLite数据库的方法(安装,连接,查询等)

    本文实例讲述了C#简单访问SQLite数据库的方法.分享给大家供大家参考,具体如下: 下载最新版SQLite(http://www.sqlite.org/download.html),其他版本也可以,这里使用的版本是sqlite-3_6_6_1 a.解压后copy c:\sqlite-3_6_6_1 b.进入cmd模式,进入sqlite-3_6_6_1目录,执行sqlite3 mytest.db c. create table test (seq int,desc varchar(8)); in

  • C#简单查询SQLite数据库是否存在数据的方法

    本文实例讲述了C#简单查询SQLite数据库是否存在数据的方法.分享给大家供大家参考,具体如下: //sqlite数据库驱动组件 using System.Data.SQLite; //插入数据库函数 int SQLquery(string sql) { try { //打开数据库 SQLiteConnection conn = new SQLiteConnection(); SQLiteConnectionStringBuilder connstr = new SQLiteConnection

  • C#中嵌入SQLite数据库的简单方法

    SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中.它是D.RichardHipp建立的公有领域项目.它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了.它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl.C#.PHP.Java等,还有ODBC接口,同样比起Mysql.PostgreSQL这两款开源的世界著名数据库

  • C#/.Net 中快速批量给SQLite数据库插入测试数据

    使用transaction: var stopwatch = new Stopwatch(); using (var cmd = new SQLiteCommand(db_con)) using (var transaction = db_con.BeginTransaction()) { stopwatch.Reset(); stopwatch.Start(); foreach (var item in sorted) { sql = string.Format("insert into db

  • C#基于SQLiteHelper类似SqlHelper类实现存取Sqlite数据库的方法

    本文实例讲述了C#基于SQLiteHelper类似SqlHelper类实现存取Sqlite数据库的方法.分享给大家供大家参考.具体如下: 这个类不是我实现的,英文原文地址为http://www.eggheadcafe.com/articles/20050315.asp,这里修改了原文中分析sql语句参数的方法,将方法名修改为AttachParameters,将其修饰符修改为private,并直接传递command到这个方法,直接绑定参数到comand.修改后的代码如下 using System;

  • C#操作SQLite方法实例详解

    本文实例讲述了C#操作SQLite方法.分享给大家供大家参考.具体分析如下: 地址: System.Data.Sqlite入手... 首先import/using: 复制代码 代码如下: using System.Data.SQLite; Connection和Command: private SQLiteConnection conn; private SQLiteCommand cmd; 连接db: conn = new SQLiteConnection("Data Source=c:\\t

  • C#操作SQLite数据库方法小结(创建,连接,插入,查询,删除等)

    本文实例讲述了C#操作SQLite数据库方法.分享给大家供大家参考,具体如下: SQLite介绍 SQLite is a software library that implements a self-contained, serverless, zero-configuration, transactional SQL database engine. SQLite是一个开源.免费的小型RDBMS(关系型数据库),能独立运行.无服务器.零配置.支持事物,用C实现,内存占用较小,支持绝大数的SQ

  • C#操作SQLite数据库之读写数据库的方法

    本文实例讲述了C#操作SQLite数据库之读写数据库的方法.分享给大家供大家参考,具体如下: 这里演示读写数据库并在窗体(Form)中显示其数据,其方式为: 读: Database(SQLite) -> DataAdapter -> DataSet -> DataGridView 写: Database(SQLite) <- DataAdapter <- DataSet <- DataGridView 1.假设现有数据库表student,其字段如下: ID(自增字段,主

  • SQLite在C#中的安装与操作技巧

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

  • Python中字符串的常见操作技巧总结

    本文实例总结了Python中字符串的常见操作技巧.分享给大家供大家参考,具体如下: 反转一个字符串 >>> S = 'abcdefghijklmnop' >>> S[::-1] 'ponmlkjihgfedcba' 这种用法叫做three-limit slices 除此之外,还可以使用slice对象,例如 >>> 'spam'[slice(None, None, -1)] >>> unicode码与字符(single-characte

  • Python 中 list 的各项操作技巧

    最近在学习 python 语言.大致学习了 python 的基础语法.觉得 python 在数据处理中的地位和它的 list 操作密不可分. 特学习了相关的基础操作并在这里做下笔记. ''' Python --version Python 2.7.11 Quote : https://docs.python.org/2/tutorial/datastructures.html#more-on-lists Add by camel97 2017-04 ''' list.append(x) #在列表

  • 整理Linux中字符串的相关操作技巧

    我们在linux的操作中经常会对文件中的字符串进行替换.统计等操作,我们现在来做一次整理,如有错误请批评指正. 统计字符串个数 grep -c str filename grep -o str filename |wc -l 替换字符串 替换当前行匹配字符串 :s/oldStr/newStr 替换当前文件中所有匹配字符串 :%s/原字符串/替换字符串/gg 批量替换字符串 sed -i "s/查找字段/替换字段/g" grep 查找字段 -rl 路径 -rl 表示所有子目录 sed -

  • JavaScript中Array的实用操作技巧分享

    一.关于Array Array的创建很灵活,可以使用Array构造函数,也可以直接创建数组"字面量". var arr = new Array(); //[] var brr = Array(); //[] 两者等效 var arr = Array(3); //[] arr.length; //3 长度为3的空数组 var arr = Array(22,33,'qq',{}); //[22, 33, "qq", Object] var brr = [22,33,'q

  • Linux中Redis安装部署的操作步骤

    目录 1. 下载redis 2.解压文件 3.将其移动到安装目录 4. 执行make 编译 5. 进行安装 6.修改redis.conf配置 7.启动redis 8.查看 ps -aux | grep redis 9.关闭redis 10.查看redis 日志 总结 最近由于项目所需redis 进行数存储,于是得在服务器安装一个redis 1. 下载redis 直接使用wget 拉取,也可以直接去官网下载 redis官网 [root@install_folder]# wget http://do

  • mysql 5.7.20常用下载、安装和配置方法及简单操作技巧(解压版免安装)

    话说凌晨刚折腾完一台MySQL 5.7.19版本的安装,未曾料到早上MySQL官方就发布了最新的5.7.20版本.这个版本看似更新不多,但是加入了一个我们所急需的功能. MySQL 5.7.20版本新增了参数group-replication-member-weight,用来表示选主时服务器的优先级.若没有这个优先级,则之前版本的MGR会选择一个或许不是用户想要的节点,这是一个令人头疼的问题.相信5.7.20版本新增的该参数能解决一些用户的痛点. 1. 下载: mysql-5.7.20是解压版免

  • Vmware虚拟机中centOS7安装图文教程

    本教程为大家分享了Vmware虚拟机中centOS7安装步骤,供大家参考,具体内容如下 1.安装VMware 下载一个软件安装: 2.新建一个虚拟机 3.引用安装包 4.启动新建的虚拟机 5.安装CentOS7的步骤 配置系统语言: 配置系统时间: 配置系统键盘: 配置键盘切换的快捷键: 配置键盘的多种: 语言支持: 默认自动使用安装源: 配置软件环境,需要及时添加的软件,这里我开启图形界面GUI:这里勾上,就默认启动图形界面. 配置安装目标位置: 选择配置分区点击完成就会进入手动分区页面: 配

  • iOS开发中使用SQL语句操作数据库的基本用法指南

    SQL代码应用示例 一.使用代码的方式批量添加(导入)数据到数据库中 1.执行SQL语句在数据库中添加一条信息 插入一条数据的sql语句: 点击run执行语句之后,刷新数据 2.在ios项目中使用代码批量添加多行数据示例 代码示例: 复制代码 代码如下: // //  main.m //  01-为数据库添加多行数据 // //  Created by apple on 14-7-26. //  Copyright (c) 2014年 wendingding. All rights reserv

  • VirtualBox中CentOS7安装教程

    本文介绍了centos7在virtualbox中的安装过程,并且说明了在安装过程中遇到的问题. 1.获取CentOS7 https://www.centos.org/download/ 选择iso文件,当前最新版为CentOS-7-x86_64-DVD-1611.iso 2.下载并安装virtualbox https://www.virtualbox.org/wiki/Downloads 3.新建虚拟机(同时需启用BIOS64位虚拟化选项) 在新建虚拟机之前,必须开启BIOS64位虚拟化选项,方

随机推荐