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层交互.而 ...
随机推荐
- 07.斐波那契数列 Java
题目描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0). n<=39 思路 递归 若n<=2;返回n; 否则,返回Fibonacci ...
- android 实例-弱引用示例 Handler正确使用方法
实际问题 android 习惯性问题:在使用handler的时候喜欢使用内部类形式. private final Handler handler = new Handler(){ @Override ...
- 品牌logo在EDM数据营销中的运用
作为让客户识别并记住的“门面”, 品牌LOGO的设计与宣导一直都是品牌化输出的重中之重 . 而在邮件营销中,为了让用户在浏览邮件内容前先有品牌概念,营销人员在放置LOGO时常常仅把显眼突出纳入考虑因素 ...
- 使用Laravel首次运行出现 No application encryption key has been specified.
先观察Laravel根目录下是否有 .env文件,有则看1,无则看2 1.若直接报500错误: 输入命令: php artisan key:generate 2.若文件根目录下没有 .env文件 (1 ...
- dpkg软件包管理
要想得心应手管理Ubuntu软件包,就必须熟悉其中最重要的软件包管理程序dpkg工具是Ubuntu软件包管理工具的基础.使用dpkg工具可以实现软件包的安装.卸载.查询.编译.打包等功能. dpkg( ...
- 使用ViewFlipper实现广告信息栏的上下翻滚效果
import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.Gestu ...
- 加密算法之 MD5算法
题记:本人自测了很多次,该算法和apache的commons utils包中的MD5算法计算一致 一.针对文件内容生成MD5值 应用场景:针对文件,在传输过程由于网络原因丢帧或者被人别恶意篡改内容,可 ...
- 掌握Pod-Pod调度策略
一 Pod生命周期管理 1.1 Pod生命周期 Pod在整个生命周期过程中被系统定义了如下各种状态. 状态值 描述 Pending API Server已经创建该Pod,且Pod内还有一个或多个容器的 ...
- JavaScript基本入门03
目录 JavaScript 入门基础 03 JavaScript构造函数 常用事件和事件处理函数 小练习 数据类型之间的差异性 数组 介绍 创建 数组的常规使用 数组的length属性 数组当中常见的 ...
- JAVA_day2_运算符
Java运算符 一.算术运算符 ++ 和 -- 既可以出现在操作数的左边,也可以出现在右边,但结果不同 1.++在左边,a先自增1再赋值给b int a=3 int b=++a 2.++在右边,先赋值 ...