SQLiteHelper帮助类
1、作用
实现SQLite小型数据的操作,包含:创建、读取、修改、写入。如果你想传入临时表(DataTable)、临时数数据集(DataSet)、范式类型(IList)达到更新目的,需要添加 DataOperation类支持,个人也已经封装。
2、引入组件
System.Data.SQLite.dll
SQLite.Interop.dll(该组件如果没有注册可能引入不进去,可以直接放在bin目录即可)
3、帮助类,可以直接创建类SQLiteHelper.cs,复制以下代码:
using AutoPlayer.Common;
using System;
using System.Data;
using System.Data.SQLite;
namespace AutoPlayer.DAL
{
public class SQLiteHelper
{
//从配置文本中读取连接字符串
private static string connectionString = XmlHelper.GetAppConfig("dbcon");
/// <summary>
/// 创建一个数据库文件。如果存在同名数据库文件,则会覆盖。
/// </summary>
/// <param name="dbName"></param>
public static void CreateDB(string dbName)
{
string l_strdbName = dbName;
if (!dbName.Contains("."))
{
l_strdbName = dbName + ".sqlite3";
}
try
{
SQLiteConnection.CreateFile(l_strdbName);
}
catch (Exception)
{
throw;
}
}
/// <summary>
/// 创建连接到指定数据库
/// </summary>
/// <param name="datasource"></param>
/// <param name="password"></param>
/// <param name="version"></param>
public static void SetConnectionString(string datasource, string password = "", int version = 3)
{
connectionString = string.Format("Data Source={0};password={1},Version={2};",
datasource, password, version);
}
/// <summary>
/// 执行命令的方法:insert,update,delete
/// </summary>
/// <param name="sql"></param>
/// <param name="parameters">可变参数,目的是省略了手动构造数组的过程,直接指定对象,编译器会帮助我们构造数组,并将对象加入数组中,传递过来</param>
/// <returns></returns>
public static int ExecuteNonQuery(string sql, params SQLiteParameter[] parameters)
{
using (SQLiteConnection connection = new SQLiteConnection(connectionString))
{
using (SQLiteCommand command = new SQLiteCommand(connection))
{
try
{
connection.Open();
command.CommandText = sql;
if (parameters.Length > 0)
{
command.Parameters.AddRange(parameters);
}
return command.ExecuteNonQuery();
}
catch (Exception) { throw; }
}
}
}
/// <summary>
/// 执行查询语句,并返回第一个结果。
/// </summary>
/// <param name="sql"></param>
/// <param name="parameters"></param>
/// <returns></returns>
public static object ExecuteScalar(string sql, params SQLiteParameter[] parameters)
{
using (SQLiteConnection conn = new SQLiteConnection(connectionString))
{
using (SQLiteCommand cmd = new SQLiteCommand(conn))
{
try
{
conn.Open();
cmd.CommandText = sql;
if (parameters.Length != 0)
{
cmd.Parameters.AddRange(parameters);
}
return cmd.ExecuteScalar();
}
catch (Exception) { throw; }
}
}
}
/// <summary>
/// 执行一个查询语句,返回一个包含查询结果的DataTable。
/// </summary>
/// <param name="sql"></param>
/// <param name="parameters"></param>
/// <returns></returns>
public static DataTable ExecuteQuery(string sql, params SQLiteParameter[] parameters)
{
using (SQLiteConnection connection = new SQLiteConnection(connectionString))
{
using (SQLiteCommand command = new SQLiteCommand(sql, connection))
{
if (parameters.Length != 0)
{
command.Parameters.AddRange(parameters);
}
SQLiteDataAdapter adapter = new SQLiteDataAdapter(command);
DataTable data = new DataTable();
try
{
adapter.Fill(data);
}
catch (Exception)
{
throw;
}
return data;
}
}
}
/// <summary>
/// 执行一个查询语句,返回一个关联的SQLiteDataReader实例。
/// </summary>
/// <param name="sql"></param>
/// <param name="parameters"></param>
/// <returns></returns>
public static SQLiteDataReader ExecuteReader(string sql, params SQLiteParameter[] parameters)
{
SQLiteConnection connection = new SQLiteConnection(connectionString);
SQLiteCommand command = new SQLiteCommand(sql, connection);
try
{
if (parameters.Length != 0)
{
command.Parameters.AddRange(parameters);
}
connection.Open();
return command.ExecuteReader(CommandBehavior.CloseConnection);
}
catch (Exception) { throw; }
}
/// <summary>
/// 查询表字段类型
/// </summary>
/// <returns></returns>
public static DataTable GetSchema()
{
using (SQLiteConnection connection = new SQLiteConnection(connectionString))
{
try
{
connection.Open();
return connection.GetSchema("TABLES");
}
catch (Exception) { throw; }
}
}
}
}
SQLiteHelper帮助类相关推荐
- Android学习之——APP番茄工作法——小结(2)
上一篇连接: http://blog.csdn.net/fu222cs98/article/details/21053491 继续上一篇 问题十一:在Fragment实现类中中加载资源文件的方式: 在 ...
- Kotlin开发第六天,数据存储,持久化
完整代码Gitee地址:kotlin-demo: 15天Kotlin学习计划 第六天学习内容代码:Chapter6 前言 简介 知识点1:文件存储 知识点2:sharedPreferences存储 知 ...
- android开发新浪微博客户端 完整攻略 [新手必读][转]
开始接触学习android已经有3个礼拜了,一直都是对着android的sdk文档写Tutorials从Hello World到Notepad Tutorial算是初步入门了吧,刚好最近对微博感兴趣就 ...
- android开发新浪微博客户端 完整攻略
http://www.eoeandroid.com/forum-viewthread-tid-67298-fromuid-106432.html 开始接触学习android已经有3个礼拜了,一直都是对 ...
- android 新浪微博客户端开发
[转载]android开发新浪微博客户端 完整攻略 分类: android 2011-04-23 22:45 3193人阅读 评论(4) 收藏 举报 开始接触学习android已经有3个礼拜了,一直都 ...
- android开发新浪微博客户端
android开发新浪微博客户端 完整攻略 [新手必读][转]2011-04-06 10:49:19 http://www.eoeandroid.com/forum-viewthread-tid-6 ...
- android开发新浪微博客户端 完整攻略 [新手必读]
android开发新浪微博客户端 完整攻略 [新手必读][转]2011-04-06 10:49:19 http://www.eoeandroid.com/forum-viewthread-tid-6 ...
- 【转载】android开发新浪微博客户端 完整攻略
开始接触学习android已经有3个礼拜了,一直都是对着android的sdk文档写Tutorials从Hello World到Notepad Tutorial算是初步入门了吧,刚好最近对微博感兴趣就 ...
- 自己搜集编写的Delphi 通用函数
{ ********************************************************************** } { Currency Common Functio ...
- C# SQLiteHelper类似SqlHelper类实现存取Sqlite数据库
这个类不是我实现的,原文在这里,我修改了原文中分析sql语句参数的方法,将方法名修改为AttachParameters,将其修饰符修改为private,并直接传递command到这个方法,直接绑定参数 ...
最新文章
- 技术图文:如何通过 LINQ 查找集合中的重复数据?
- 【Android 异步操作】手写 Handler ( Handler 发送与处理消息 | Handler 初始化 | 完整 Handler 代码 )
- Basic认证方式访问url
- python中类的定义方法_在Python中定义类变量的正确方法
- autowired_@Autowired所有的东西!
- 项目中记录影响性能的缓慢数据库查询
- 搞清楚一道关于Integer的面试题
- java applet html_将图像从Java Applet传递到HTML
- mysql 单块读 多块读_求指点:STM32F103VC的SDIO读SD卡单块读成功,多块读却不行?...
- 程序员分析一线城市 1000 +岗位招聘需求,告诉你如何科学找工作
- Nginx 原理和架构 | 原力计划
- mysql sysbench 1.0.X
- 2345浏览器兼容模式怎么设置
- 用python做youtube自动化下载器 思路
- 秦九韶算法的思想与解多项式算法时间比较附代码
- SSHD服务的搭建与管理
- python汇率兑换_汇率兑换—python第一课
- 5w对讲机需要执照吗
- js开发html5游戏,JS开发HTML5游戏《神奇的六边形》(五)
- 布莱克斯科尔斯模型(三)热传导方程的解析解
热门文章
- 已知直线上两点求直线的一般式方程
- 山东交通学院院计算机答辩,山东交通学院教务处关于做好2018届本科毕业生毕业设计(论文)工作的通知...
- python论文排版格式_论文排版(一):三分钟了解页面设置
- 用实例配置 linux squid 代理服务器
- Omni-ID 推出2款有源RFID标签
- 如何创建自己的Cydia源
- CeoMax总裁WordPress模板3.8.1免受权版本
- matlab单字音频合成,基于MATLAB的音频解析与合成
- 致敬柳传志三网合一的佳沃品牌之路
- 暂时解决Xmarks无法同步