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中找到,具体步骤 ...
随机推荐
- (转)一个vue路由参数传递的注意点
首先我的路由的定义 { path: '/b', name: 'B', component: resolve => require(['../pages/B.vue'], resolve) } 我 ...
- Android学习——控件ListView的使用
一.ListView的简单用法 首先新建一个ListViewTest项目,并让Android Studio自动创建好活动.然后修改activity_main.xml中的代码,如下: <?xml ...
- JS操作DOM的一些常用方法
getElementById():获取有指定惟一ID属性值文档中的元素 getElementsByName(name):返回的是数组 getElementsByTagName():返回具有指定标签名的 ...
- 面试题-mysql
Sql :UPDATE test SET sex = CASE sex WHEN 'm' THEN 'f' ELSE 'm' END;
- 企业级任务调度框架Quartz(9) Quartz之作业触发器Trigger
前序: 我们已经大概对Quartz的基本有了一个大概的认识:现在我们将要逐渐对Quartz的各个重要组件进行学习:前面已经对job进行了详细讲解,现在我们来认识下它的一个重要兄弟,没有它,作 ...
- VS Code中编写html(5) 标签的布局设置
1 <!--首先在div中添加四个span标签--> <div> <!--span*4+tab--> <!--span{span$}*4--> < ...
- Javase 集合1
package Swxx; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; pu ...
- java 常用API 时间 练习
package com.orcal.demc01; import java.util.Date; public class Xuexi { public static void main(String ...
- 版本控制之git学习
最近学习了一下版本控制中比较符合开发者气质的Git,这里做一个总结.一来梳理所学的内容:二来也作为起点后续继续丰富.学习的方式主要为网络学习和个人实践.推荐两个学习网页,互相参考必有所成. 博客园:h ...
- centos7 选定默认启动内核,及删除无用内核
#使用cat /boot/grub2/grub.cfg |grep menuentry 查看系统可用内核 [root@bigapp-slave27 ~]# cat /boot/grub2/grub.c ...