SQLiteHelp
using System;
using System.Collections.Generic;
using System.Text;
using System.Data.SQLite;
using System.Data;
namespace MySQLiteDemo
{
public class SqliteHelper
{
private string _connectString = string.Empty;
public string ConnectString
{
get { return _connectString; }
set { _connectString = value; }
}
/// <summary>
/// 检测
/// </summary>
/// <returns></returns>
public static bool TestLite(string strConn)
{
SQLiteConnection conn = new SQLiteConnection(strConn);
conn.Open();
if (conn.State != ConnectionState.Open)
{
return false;
}
return true;
}
/// <summary>
/// 获取数据
/// </summary>
/// <returns></returns>
public DataTable GetData(string strSql)
{
return GetData(strSql, null);
}
/// <summary>
/// 获取数据
/// </summary>
/// <returns></returns>
public DataTable GetData(string strSql, SQLiteParameter[] cmdParams)
{
using (SQLiteConnection con = new SQLiteConnection(_connectString))
{
try
{
SQLiteCommand cmd = new SQLiteCommand(strSql, con);
if (cmdParams != null)
{
foreach (SQLiteParameter param in cmdParams)
{
cmd.Parameters.Add(param);
}
}
con.Open();
DataTable ret = new DataTable();
SQLiteDataAdapter ad = new SQLiteDataAdapter(cmd);
ad.Fill(ret);
return ret;
}
catch (SQLiteException ex)
{
throw new Exception(ex.Message);
}
}
}
/// <summary>
/// 获取SQLiteDataReader
/// </summary>
/// <returns></returns>
public SQLiteDataReader GetReader(string strSql)
{
return GetReader(strSql, null);
}
/// <summary>
/// 执行带参数的查询语句,返回SQLiteDataReader ( 注意:调用该方法后,一定要对SQLiteDataReader进行Close )
/// </summary>
/// <param name="strSQL">查询语句</param>
/// <returns>SqlDataReader</returns>
public SQLiteDataReader GetReader(string strSql, params SQLiteParameter[] cmdParms)
{
using (SQLiteConnection con = new SQLiteConnection(_connectString))
{
try
{
SQLiteCommand cmd = new SQLiteCommand(strSql, con);
if (cmdParms != null)
{
foreach (SQLiteParameter param in cmdParms)
{
cmd.Parameters.Add(param);
}
}
con.Open();
SQLiteDataReader myReader = cmd.ExecuteReader();
cmd.Parameters.Clear();
return myReader;
}
catch (SQLiteException ex)
{
throw new Exception(ex.Message);
}
}
}
/// <summary>
/// 执行语句
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public int ExecuteSql(string strSql)
{
using (SQLiteConnection con = new SQLiteConnection(_connectString))
{
try
{
SQLiteCommand cmd = new SQLiteCommand(strSql, con);
con.Open();
return cmd.ExecuteNonQuery();
}
catch (SQLiteException ex)
{
throw new Exception(ex.Message);
}
}
}
/// <summary>
/// 执行语句
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public int ExecuteSql(string strSql, SQLiteParameter[] cmdParams)
{
using (SQLiteConnection con = new SQLiteConnection(_connectString))
{
try
{
SQLiteCommand cmd = new SQLiteCommand(strSql, con);
if (cmdParams != null)
{
foreach (SQLiteParameter param in cmdParams)
{
cmd.Parameters.Add(param);
}
}
con.Open();
int rows = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
return rows;
}
catch (SQLiteException ex)
{
throw new Exception(ex.Message);
}
}
}
/// <summary>
/// 获取当前第一行第一列值
/// </summary>
/// <param name="strsql"></param>
/// <param name="cmdParams"></param>
/// <returns></returns>
public object GetSingle(string strSql)
{
return GetSingle(strSql, null);
}
/// <summary>
/// 获取当前第一行第一列值
/// </summary>
/// <param name="strsql"></param>
/// <param name="cmdParams"></param>
/// <returns></returns>
public object GetSingle(string strSql, SQLiteParameter[] cmdParams)
{
using (SQLiteConnection con = new SQLiteConnection(_connectString))
{
try
{
SQLiteCommand cmd = new SQLiteCommand(strSql, con);
if (cmdParams != null)
{
foreach (SQLiteParameter param in cmdParams)
{
cmd.Parameters.Add(param);
}
}
con.Open();
return cmd.ExecuteScalar();
}
catch (SQLiteException ex)
{
throw new Exception(ex.Message);
}
}
}
/// <summary>
/// 页级操作
/// </summary>
/// <param name="sql"></param>
/// <param name="startRecord"></param>
/// <param name="maxRecord"></param>
/// <returns></returns>
public DataTable FindByPaging(string strSql, SQLiteParameter[] cmdParams, int startRecord, int maxRecord)
{
using (SQLiteConnection con = new SQLiteConnection(_connectString))
{
try
{
SQLiteCommand cmd = new SQLiteCommand(strSql + " LIMIT " + +startRecord + "," + maxRecord, con);
if (cmdParams != null)
{
foreach (SQLiteParameter param in cmdParams)
{
cmd.Parameters.Add(param);
}
}
con.Open();
DataTable ret = new DataTable();
SQLiteDataAdapter ad = new SQLiteDataAdapter(cmd);
ad.Fill(ret);
return ret;
}
catch (SQLiteException ex)
{
throw new Exception(ex.Message);
}
}
}
/// <summary>
/// 启用事务.
/// </summary>
/// <param name="objTrans"></param>
/// <returns></returns>
public SQLiteTransaction BeginSQLTrans()
{
SQLiteConnection con = new SQLiteConnection(_connectString);
con.Open();
return con.BeginTransaction();
}
/// <summary>
/// 执行语句
/// </summary>
/// <param name="strSql"></param>
/// <param name="cmdParams"></param>
/// <param name="trans"></param>
/// <returns></returns>
public int ExecuteSql(string strSql, SQLiteTransaction trans)
{
return ExecuteSql(strSql, null, trans);
}
/// <summary>
/// 执行语句
/// </summary>
/// <param name="strSql"></param>
/// <param name="cmdParams"></param>
/// <param name="trans"></param>
/// <returns></returns>
public int ExecuteSql(string strSql, SQLiteParameter[] cmdParams, SQLiteTransaction trans)
{
int ret = 0;
using (SQLiteCommand cmd = new SQLiteCommand(strSql, trans.Connection))
{
try
{
if (cmdParams != null)
{
foreach (SQLiteParameter param in cmdParams)
{
cmd.Parameters.Add(param);
}
}
if (trans != null)
cmd.Transaction = trans;
ret = cmd.ExecuteNonQuery();
}
catch (SQLiteException ex)
{
throw ex;
}
catch (Exception ex)
{
throw ex;
}
}
return ret;
}
}
}
SQLiteHelp的更多相关文章
- [android] SQLite 数据库的升级 和 降级
public class SqliteHelp extends SQLiteOpenHelper { /* * context:创建数据库所需的 上下文对象 * name: 数据库名字 * facto ...
- 要知道的DbProviderFactory
了解DbProviderFactory 前不久想使用下EF的通用单表增删改的特性,当时使用控制台做测试,怎么弄都没成功,原因出在app.config中,反而在mvc项目中,就没有任何问题.在反复的更改 ...
- Unity3D 使用SQLite
使用Unity操作SQLite,需要用到三个库文件,分别是Mono.Data.Sqlite.dll和System.Data.dll和Sqlite3.dll,前两个库文件可以在unity中找到,具体步骤 ...
随机推荐
- Android通过百度地图API用Service和Alarm在后台定时获取地理位置信息
本文主要介绍了Android项目集成百度地图API,使用AlarmManager定时调用Service,在Service中请求坐标更新,并通过坐标得到省.市和县三级地理位置信息的方法. 程序结构很简单 ...
- 关于电脑安装新硬盘,出现无法是识别设备,03F0问题解答。
问题说明:在添加新的硬盘,切确定硬盘没有坏的情况下,无法识别出新的硬盘. 解决方案: 1.检查bios系统里的安全模式,是否处于开启中.因为在windows 8.1以上的版本中,不开启的情况下只能读取 ...
- 【Oracle】ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired
出现此错误的原因是因为事务等待造成的,找出等待的事务,kill即可. 下面是我当时遇到的错误: ---删除表t1时出现错误 SCOTT@GOOD> drop table t1; drop tab ...
- java线程入门知识
为什么需要多线程? . 模型的简化,如某些程序是由多个相对独立任务的运行: . 图形界面的出现,输入.输出的阻塞 . 多核CPU的更好利用 . 异步行为的需要 Java多线程的特性: . 程序的入口m ...
- 目录处理文件&链接命令
一.目录处理文件 1.删除文件或目录 rm -rf [文件或目录] //remove:删除文件或目录 -r:删除目录 -f:强制 2.复制文件或目录 cp [选项] [原文件或 ...
- xshell登录centos7很慢解决办法
使用xshell登录到centos系统虚拟机,可以登录上去,但是认证速度特别慢. 因为在登录时,需要反向解析dns,因此,修改linux配置文件,vi /etc/ssh/sshd_config,将其注 ...
- 数据结构(1) 第一天 算法时间复杂度、线性表介绍、动态数组搭建(仿Vector)、单向链表搭建、企业链表思路
01 数据结构基本概念_大O表示法 无论n是多少都执行三个具体步骤 执行了12步 O(12)=>O(1) O(n) log 2 N = log c N / log c N (相当于两个对数进行了 ...
- HDU2149 - Public Sale【巴什博弈】
虽然不想,但是现实总归是现实,Lele始终没有逃过退学的命运,因为他没有拿到奖学金.现在等待他的,就是像FarmJohn一样的农田生涯. 要种田得有田才行,Lele听说街上正在举行一场别开生面的拍卖 ...
- [tyvj 1071] LCIS
题目描述 熊大妈的奶牛在小沐沐的熏陶下开始研究信息题目.小沐沐先让奶牛研究了最长上升子序列,再让他们研究了最长公共子序列,现在又让他们要研究最长公共上升子序列了. 小沐沐说,对于两个串A,B,如果它们 ...
- ROPI下载安装
ROPI下载安装 官方地址 参考文献 安装过程 wget http://num.math.uni-goettingen.de/~m.goerigk/ropi/0.1.0/ropi-0.1.0.tar. ...