C# 下sqlite简单使用
1. 对数据库增, 删, 改
//数据库文件存储路径,(Environment.CurrentDirectory:为当前工作目录的完全路径)
string dbPath = "Data Source =" + Environment.CurrentDirectory + "/test.db";
//创建连接数据库实例,指定文件位置
SQLiteConnection con = new SQLiteConnection(dbPath);
//打开数据库,若文件不存在会自动创建
con.Open();
//建表语句
string sql = "CREATE TABLE IF NOT EXISTS student(id integer, name varchar(20), sex varchar(2));";
//创建sql执行指令对象
SQLiteCommand com = new SQLiteCommand(sql, con);
//如果不带参数时, 使用一下语句赋值
//com.CommandText = sql;
//com.Connection = con;
//执行sql指令创建建数据表,如果表不存在,创建数据表
com.ExecuteNonQuery(); //给表添加数据
//1. 使用sql语句逐行添加
com.CommandText = "INSERT INTO student VALUES(1, '小红', '男')";
com.ExecuteNonQuery();
com.CommandText = "INSERT INTO student VALUES(2, '小李', '女')";
com.ExecuteNonQuery();
com.CommandText = "INSERT INTO student VALUES(3, '小明', '男')";
com.ExecuteNonQuery();
//2. 使用事务添加
//实例化一个事务对象
SQLiteTransaction tran = con.BeginTransaction();
//把事务对象赋值给com的transaction属性
com.Transaction = tran;
//设置带参数sql语句
com.CommandText = "INSERT INTO student VALUES(@id, @name, @sex)";
for (int i = 0; i < 10; i++)
{
//添加参数
com.Parameters.AddRange(new[] {//添加参数
new SQLiteParameter("@id", i + 1),
new SQLiteParameter("@name", "test" + i),
new SQLiteParameter("@sex", i % 3 == 0 ? "男" : "女")
});
//执行添加
com.ExecuteNonQuery();
}
//提交事务
tran.Commit();
//关闭数据库
con.Close();
2. 读取数据
//数据库路径
string dbPath = "Data Source =" + Environment.CurrentDirectory + "/test.db";
//创建数据库实例,指定文件位置
SQLiteConnection conn = new SQLiteConnection(dbPath);
//打开数据库,若文件不存在会自动创建
conn.Open();
//查询sql语句
string sql = "select * from student";
//实例化sql指令对象
SQLiteCommand cmdQ = new SQLiteCommand(sql, conn);
//存放读取数值
SQLiteDataReader reader = cmdQ.ExecuteReader();
//显示数据的控件
richTextBox1.Text = "";
//读取每一行数据
while (reader.Read())
{
//读取并赋值给控件
richTextBox1.Text += reader.GetInt32(0) + " " + reader.GetString(1) + " " + reader.GetString(2) + "\n";
}
//关闭数据库
conn.Close();
C# 下sqlite简单使用的更多相关文章
- Visual Studio下SQLite数据库开发环境设置
由于我们介绍的内容都是基于微软的Visual Studio下开发的Win32平台,所以下边我们介绍Visual Studio下SQLite数据库开发环境设置.具体而言我们有两种方式可以在Visual ...
- SQLite简单介绍
一.离线缓存 在项目开发中,通常都需要对数据进行离线缓存的处理,如新闻数据的离线缓存等. 说明:离线缓存一般都是把数据保存到项目的沙盒中.有以下几种方式 (1)归档:NSCodeing.NSKeyed ...
- mysql 5.7.29 在centos7.6下超简单的本地yum源安装与配置
目录 生成yum源元数据 从网易镜像站下载MySQL 5.7 的 bundle包 创建文件 mysql-local.repo 执行yum install命令 生成yum源元数据 createrepo ...
- iOS开发数据库篇—SQLite简单介绍
iOS开发数据库篇—SQLite简单介绍 一.离线缓存 在项目开发中,通常都需要对数据进行离线缓存的处理,如新闻数据的离线缓存等. 说明:离线缓存一般都是把数据保存到项目的沙盒中.有以下几种方式 (1 ...
- ios下最简单的正则,RegexKitLite
ios下最简单的正则,RegexKitLite 1.去RegexKitLite下载类库,解压出来会有一个例子包及2个文件,其实用到的就这2个文件,添加到工程中.备用地址:http://www.coco ...
- 【转】 iOS开发数据库篇—SQLite简单介绍
开始学SQLite啦, 原文: http://www.cnblogs.com/wendingding/p/3868893.html iOS开发数据库篇—SQLite简单介绍 一.离线缓存 在项目开发中 ...
- Linux下一个简单的日志系统的设计及其C代码实现
1.概述 在大型软件系统中,为了监测软件运行状况及排查软件故障,一般都会要求软件程序在运行的过程中产生日志文件.在日志文件中存放程序流程中的一些重要信息, 包括:变量名称及其值.消息结构定义.函数返回 ...
- VIM - visual selection 模式下的简单操作
1. 概述 vim 的 visual selection 模式下的简单操作 2. visual selection 模式 概述 可视化选择 可视化选择 vim 的一种专门用来选择的模式 可以提供相对于 ...
- [Android] Android MVP 架构下 最简单的 代码实现
Android MVP 架构下 最简单的 代码实现 首先看图: 上图是MVP,下图是MVC MVP和MVC的区别,在于以前的View层不仅要和model层交互,还要和controller层交互.而 ...
随机推荐
- IDEA无法通过类加载器获取resources文件夹配置文件解决办法
问题描述:如果IDEA无法通过类加载器获取resources文件夹配置文件,一定是Classpath编译文件没有导致的. 1.在通过配置文件来获取文件信息时,在resouces文件中放入了filena ...
- Unity和Mef的比较
1:Mef和Untiy都支持依赖注入 2:Mef支持插件的机制 3:Mef在写法上更简单灵活 4:Mef在宏观上比Unity更加庞大 5:Mef不支持Aop的切入拦截,Unity支持
- Redis 持久化配置(兼论瞎翻译的问题)
redis.conf 文件中配置 save 默认配置项: save save save 查了好几个地方都是这么说的: 第一句的意思:15分钟内修改了一个键就保存??? 往 Redis 里加了一个值,重 ...
- 获取packageName和startActivity
import android import pprint # 获取packageName droid = android.Android(('192.168.1.101', 42250)) droid ...
- Jconsole、JvisualVM无法连接Tomcat服务
转载自:https://blog.csdn.net/qq_27790011/article/details/88799587 打开TomcatXw.exe找到java选项卡,添加以下参数 -Dcom. ...
- Java多线程(2):线程加入/join()
线程加入 join()方法,等待其他线程终止.在当前线程(主线程)中调用另一个线程(子线程)的join()方法,则当前线程转入阻塞状态,直到另一个线程运行结束,当前线程再由阻塞转为就绪状态. 也就是主 ...
- webrtc实现点对点视频通讯
html: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...
- Python列表排序
1.冒泡排序 冒泡排序(Bubble Sort)是一种简单的排序算法.它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.遍历数列的工作是重复地进行直到没有再需要交换,也就 ...
- cryptopp 加密库的安装
今天 在搭建环境的过程中遇到一个问题:C++ 的加密库 crypto在新系统中没有安装,于是百度一下,顺便解决问题 1.开源包下载 下载地址:https://www.cryptopp.com/#dow ...
- 5-1 标准I/O和管道
标准I/O和管道 程序:指令+数据 读入数据:Input 输出数据:Output 打开的文件都有一个fd: file descriptor (文件描述符) Linux给程序提供三种 I/O 设备 标准 ...