SQLite Helper (C#) z
http://www.codeproject.com/Articles/746191/SQLite-Helper-Csharp
Introduction
I have written a small class, SQLiteHelper which aims to simplify the usage of SQLite in C#.
Prerequisite
This small class is built on top of System.Data.SQLite.DLL. A reference of this DLL must be added into your projects.
Download: https://system.data.sqlite.org
List of Simplified Functions
- GetTableStatus
- GetColumnStatus
- CreateTable
- BeginTransaction, Commit, Rollback
- Select
- Execute
- ExecuteScalar
- ExecuteScalarStr
- ExecuteScalarInt
- ExecuteScalarDateTime
- ExecuteScalarDecimal
- ExecuteScalarBlob
- Escape
- Insert
- Update
- RenameTable
- CopyAllData
- DropTable
Getting Start
Add this using statement at the top of your class:
Collapse | Copy Codeusing System.Data.SQLite;
SQLiteConnection and SQLiteCommand have to be initialized before using SQLiteHelper:
Example:
Collapse | Copy Codeusing (SQLiteConnection conn = new SQLiteConnection("data source=C:\\data"))
{
using (SQLiteCommand cmd = new SQLiteCommand())
{
cmd.Connection = conn;
conn.Open();
SQLiteHelper sh = new SQLiteHelper(cmd);
// do something...
conn.Close();
}
}
1. GetTableStatus
Get all information of tables in the database.
Collapse | Copy CodeDataTable dt = sh.GetTableStatus();
2. GetColumnStatus
Get all information of columns in specific table.
Collapse | Copy Code// Get column's information from table "person"
DataTable dt = sh.GetColumnStatus("person");
3. CreateTable
Create table.
Example table structure: Person
| Column Name | Data Type | Primary Key | Not Null | Default Value |
| id | int | true | ||
| name | text | |||
| membershipid | int | |||
| level | decimal | 5.5 |
Collapse | Copy CodeSQLiteTable tb = new SQLiteTable("person");
tb.Columns.Add(new SQLiteColumn("id", true));
tb.Columns.Add(new SQLiteColumn("name"));
tb.Columns.Add(new SQLiteColumn("membershipid", ColType.Integer));
tb.Columns.Add(new SQLiteColumn("level", ColType.Decimal, false, false, "5.5"));
sh.CreateTable(tb);
4. BeginTransaction, Commit, Rollback
Applying transactions.
Collapse | Copy Codesh.BeginTransaction(); try
{
// execute some queries sh.Commit();
}
catch
{
sh.Rollback();
}
5. Select
Return the query result in DataTable format.
Collapse | Copy CodeDataTable dt = sh.Select("select * from person order by id;");
6. Execute
Execute single SQL query.
Collapse | Copy Codesh.Execute("insert into person(name)values('hello');");
7. ExecuteScalar
Return the result from first row first column in object format.
Collapse | Copy Codeobject ob = sh.ExecuteScalar("select max(id) from person;");
8. ExecuteScalarStr
Return the result from first row first column in string format.
Collapse | Copy Codestring s = sh.ExecuteScalarStr("select max(id) from person;");
9. ExecuteScalarInt
Return the result from first row first column in Int format.
Collapse | Copy Codeint i = sh.ExecuteScalarInt("select max(id) from person;");
10. ExecuteScalarDateTime
Return the result from first row first column in DateTime format.
Collapse | Copy CodeDateTime date = sh.ExecuteScalarDateTime("select dateregister from person where id = 1;");
11. ExecuteScalarDecimal
Return the result from first row first column in decimal format.
Collapse | Copy Codedecimal d = sh.ExecuteScalarDecimal("select level from person where id = 1;");
12. ExecuteScalarBlob
Return the result from first row first column in byte[] format.
Collapse | Copy Codebyte[] ba = sh.ExecuteScalarBlob("select photo from person where id = 1;");
13. Escape
Escape string sequence for text value to avoid SQL injection or invalid SQL syntax to be constructed.
Collapse | Copy Codestring value = sh.Escape(input);
14. Insert
Insert data.
Sample 1: Insert single row.
Collapse | Copy Codevar dic = new Dictionary<string, object>();
dic["name"] = "John";
dic["membershipid"] = 1;
dic["level"] = 6.8; sh.Insert("person", dic);
Sample 2: Insert multiple rows.
Collapse | Copy Codevar lst = new List<Dictionary<string,>(); var dic1 = new Dictionary<string,>();
dic1["name"] = "John";
dic1["membershipid"] = 1;
dic1["level"] = 6.8;
lst.Add(dic1); var dic2 = new Dictionary<string,>();
dic2["name"] = "Catherine";
dic2["membershipid"] = 2;
dic2["level"] = 9.7;
lst.Add(dic2); var dic3 = new Dictionary<string,>();
dic3["name"] = "Thomas";
dic3["membershipid"] = 3;
dic3["level"] = 8.6;
lst.Add(dic3); sh.Insert("person", lst);
16. Update
Update row.
Sample 1: Update with single condition (where id = 1)
Collapse | Copy Codevar dicData = new Dictionary<string, object>();
dicData["name"] = "no name";
dicData["membershipid"] = 0;
dicData["level"] = 5.5; sh.Update("person", dicData, "id", 1);
Sample 2: Update with multiple condition (where membership = 1 and level = 5.5)
Collapse | Copy Codevar dicData = new Dictionary<string, object>();
dicData["name"] = "no name";
dicData["status"] = 0;
dicData["money"] = 100;
dicData["dateregister"] = DateTime.MinValue; var dicCondition = new Dictionary<string,>();
dicCondition["membershipid"] = 1;
dicData["level"] = 5.5; sh.Update("person", dicData, dicCondition);
16. RenameTable
Rename a table.
Collapse | Copy Codesh.RenameTable("person", "person_backup");
17. CopyAllData
Copy all data from one table to another.
Collapse | Copy Codesh.CopyAllData("person", "person_new");
Before copying, SQLiteHelper will scan the two tables for match columns. Only columns that exist in both tables will be copied.
18. DropTable
Drop table, delete a table
Collapse | Copy Codesh.DropTable("person");
That's it, guys/girls. Comments are welcome.
Happy coding 
Also available at: https://sh.codeplex.com/[^]
SQLite Helper (C#) z的更多相关文章
- sqlite helper
//-------------------------------------------------------------------------- // // Copyright (c) BUS ...
- SQLite Helper (C#) zt
http://www.codeproject.com/Articles/746191/SQLite-Helper-Csharp This small class (SQLiteHelper.cs) i ...
- C#操作SQLite数据库
SQLite介绍 SQLite is a software library that implements a self-contained, serverless, zero-configurati ...
- Android中多表的SQLite数据库(译)
原文: Android SQLite Database with Multiple Tables 在上一篇教程Android SQLite Database Tutorial中,解释了如何在你的And ...
- C# SQLite 创建数据库的方法增删查改语法和命令
SQLite介绍 SQLite是一个开源.免费的小型RDBMS(关系型数据库),能独立运行.无服务器.零配置.支持事物,用C实现,内存占用较小,支持绝大数的SQL92标准. SQLite数据库官方主页 ...
- 安卓APP与智能硬件相结合的简易方案
第1章 概 述 (作者小波QQ463431476) (来源http://blog.chinaaet.com/zhaocundang/p/5100017645博客) (来源 http://www. ...
- HRPlugin For Xcode发布(附源码地址)
今天给大家介绍的这个插件,是我在IOS平台上开发以来,一些想法的集合体.因为本人时常感觉在开发过程中无论从GOOGLE资料查找和SQL数据库查询,正则表达式测试,SVN等,这些经常要做的操作中,耽误了 ...
- 学习笔记:调用js文件冲突问题解决方案
之前自己动手做了一个小网站,在实现过程中遇到了一个关于js文件调用冲突的问题. 具体问题描述如下:在index.html文件中引用了两个js文件,单独添加banner.js或者focus_pic.js ...
- 使用Rxjava缓存请求
最近,我尝试使用RxJava开发了一款闲时备份app.我必须承认,一旦你get到了正确的方式,RxJava几乎感觉就像作弊.一切看起来更简洁,多个请求能够被组合,且非常容易控制.通过在UI线程观察和在 ...
随机推荐
- 路径MTU
数据在以太网中的传输有长度有一个限制,其最大值一般情况下是1500字节.链路层的这个特性叫作MTU,也就是最大传输单元.不同类型的网络会有所不同的.如果IP层有一个数据报要传输,而且数据的长度比链路层 ...
- java查询手机号码归属地
package com; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamRe ...
- Android开发之从网络URL上下载JSON数据
网络下载拉取数据中,json数据是一种格式化的xml数据,非常轻量方便,效率高,体验好等优点,下面就android中如何从给定的url下载json数据给予解析: 主要使用http请求方法,并用到Htt ...
- 这种写法用过没:string.Format("{0,-10}", 8)
1 2 3 4 var s1 = string.Format("{0,-10}", 8); var s2 = string.Format("{0,10}", 8 ...
- javascript进击(九)参考手册
完整的 Number 对象参考手册 如需可用于 Number 对象的所有属性和方法的完整参考,请访问我们的 Number 对象参考手册. 该参考手册包含每个属性和方法的描述和实例. 完整的 Strin ...
- Nginx高性能服务器安装、配置、运维 (5) —— Nginx虚拟主机配置
六.Nginx虚拟主机配置 建立基于域名的虚拟主机: (1)建立基于域名的虚拟主机配置文件(以abc.com为例): (2)更改虚拟主机配置文件: 更改配置如下(更改部分即可): server { l ...
- I2C Verilog的实现(一)
<span style="font-size:14px;">`timescale 1ns / 1ps module test( sda ); reg scl; inou ...
- 新增的html5中js获取方法
一.querySelector 获取的选择器与jquery的选择器相同
- hibernate篇章一
我只想说一句话FUCK! 昨晚查了一晚上资料. 今早细致勃勃的准备搭建环境,早上到现在失败!失败!失败!蛋疼 有兴趣的可以试试.我暂时搁置,去做分页了 有兴趣需要相关资料的可以查阅我的微博java66 ...
- U3D 2D游戏之黑暗纪元 2D游戏基础入门开发全(1)
第一个U3D 2D游戏的例子,全部自己编写,算是入门用,这里记录一下. 1.首先游戏把层次布置好,这里分为 背景层,游戏层,UI层 背景层 (Background-1):就是单纯的背景显示作用. 游戏 ...