using System;
using System.Data;
using System.Data.Common;
using System.Data.SQLite;
namespace SQLiteQueryBrowser
{
/// <summary> /// 说明:这是一个针对System.Data.SQLite的数据库常规操作封装的通用类。 /// 作者:zhoufoxcn(周公) /// 日期:2010-04-01 /// Blog:http://zhoufoxcn.blog.51cto.com or http://blog.csdn.net/zhoufoxcn /// Version:0.1 /// </summary> public class SQLiteDBHelper
{
private string connectionString =
string.Empty;
/// <summary> /// 构造函数 /// </summary> /// <param name="dbPath">SQLite数据库文件路径</param> public SQLiteDBHelper(
string dbPath)
{
this.connectionString =
"Data Source=" + dbPath;
}
/// <summary> /// 创建SQLite数据库文件 /// </summary> /// <param name="dbPath">要创建的SQLite数据库文件路径</param> public static void CreateDB(
string dbPath)
{
using (SQLiteConnection connection =
new SQLiteConnection(
"Data Source=" + dbPath))
{
connection.Open();
using (SQLiteCommand command =
new SQLiteCommand(connection))
{
command.CommandText =
"CREATE TABLE Demo(id integer NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE)";
command.ExecuteNonQuery();
command.CommandText =
"DROP TABLE Demo";
command.ExecuteNonQuery();
}
}
}
/// <summary> /// 对SQLite数据库执行增删改操作,返回受影响的行数。 /// </summary> /// <param name="sql">要执行的增删改的SQL语句</param> /// <param name="parameters">执行增删改语句所需要的参数,参数必须以它们在SQL语句中的顺序为准</param> /// <returns></returns> public int ExecuteNonQuery(
string sql, SQLiteParameter[] parameters)
{
int affectedRows = 0;
using (SQLiteConnection connection =
new SQLiteConnection(connectionString))
{
connection.Open();
using (DbTransaction transaction = connection.BeginTransaction())
{
using (SQLiteCommand command =
new SQLiteCommand(connection))
{
command.CommandText = sql;
if (parameters !=
null)
{
command.Parameters.AddRange(parameters);
}
affectedRows = command.ExecuteNonQuery();
}
transaction.Commit();
}
}
return affectedRows;
}
/// <summary> /// 执行一个查询语句,返回一个关联的SQLiteDataReader实例 /// </summary> /// <param name="sql">要执行的查询语句</param> /// <param name="parameters">执行SQL查询语句所需要的参数,参数必须以它们在SQL语句中的顺序为准</param> /// <returns></returns> public SQLiteDataReader ExecuteReader(
string sql, SQLiteParameter[] parameters)
{
SQLiteConnection connection =
new SQLiteConnection(connectionString);
SQLiteCommand command =
new SQLiteCommand(sql, connection);
if (parameters !=
null)
{
command.Parameters.AddRange(parameters);
}
connection.Open();
return command.ExecuteReader(CommandBehavior.CloseConnection);
}
/// <summary> /// 执行一个查询语句,返回一个包含查询结果的DataTable /// </summary> /// <param name="sql">要执行的查询语句</param> /// <param name="parameters">执行SQL查询语句所需要的参数,参数必须以它们在SQL语句中的顺序为准</param> /// <returns></returns> public DataTable ExecuteDataTable(
string sql, SQLiteParameter[] parameters)
{
using (SQLiteConnection connection =
new SQLiteConnection(connectionString))
{
using (SQLiteCommand command =
new SQLiteCommand(sql, connection))
{
if (parameters !=
null)
{
command.Parameters.AddRange(parameters);
}
SQLiteDataAdapter adapter =
new SQLiteDataAdapter(command);
DataTable data =
new DataTable();
adapter.Fill(data);
return data;
}
}
}
/// <summary> /// 执行一个查询语句,返回查询结果的第一行第一列 /// </summary> /// <param name="sql">要执行的查询语句</param> /// <param name="parameters">执行SQL查询语句所需要的参数,参数必须以它们在SQL语句中的顺序为准</param> /// <returns></returns> public Object ExecuteScalar(
string sql, SQLiteParameter[] parameters)
{
using (SQLiteConnection connection =
new SQLiteConnection(connectionString))
{
using (SQLiteCommand command =
new SQLiteCommand(sql, connection))
{
if (parameters !=
null)
{
command.Parameters.AddRange(parameters);
}
SQLiteDataAdapter adapter =
new SQLiteDataAdapter(command);
DataTable data =
new DataTable();
adapter.Fill(data);
return data;
}
}
}
/// <summary> /// 查询数据库中的所有数据类型信息 /// </summary> /// <returns></returns> public DataTable GetSchema()
{
using (SQLiteConnection connection =
new SQLiteConnection(connectionString))
{
connection.Open();
DataTable data=connection.GetSchema(
"TABLES");
connection.Close();
//foreach (DataColumn column in data.Columns) //{ // Console.WriteLine(column.ColumnName); //} return data;
}
}
}
}
相关推荐
System.Data.SQLite.DLL C# 读写sqlite数据库 亲测可用 不能读取加密的sqlite数据库
QLite操作驱动的dll。下载完成后,新建一个winform项目,在引用中添加[System.Data.SQLite.dll],并在[Form.cs]中添加[using System.Data.SQLite;]
在开发过程中,特别是移动类的开发,经常会把数据存储到本地上,这时就需要用到Sqlite小型数据库,那么程序上就需要引用这两个类SQLite.Interop.089.dll跟System.Data.SQLite.dll
System.Data.Sqlite.DLL 1.0.105.2 Sqlite 3.19.3 现提供一个以资源方式存到System.Data.SQLite.dll中的动态库。在运行中自动释放SQLite.Interop.dll并根据当前运行进程位数进行调用。
在只装有.NET2.0的机器上就可以操作Sqlite数据库。 实测32(XP,2003)位系统与64(2003,WIN7,Win8)位系统均正常执行。 之所以将释放的文件放在10940_x86或10940_x64下面是为了同一目录下支持运行不同版本的...
C#连接sqlite数据库,要添加引用System.Data.SQLite.dll,但是这个引用也分版本号的,在此分享.net4.0版的供大家下载
System.Data.SQLite.dll SQLite访问数据库相关组件。
SQLite数据库所必须的System.Data.SQLite.dll文件。下载分不能设置0。抱歉了大家。。。。。。
System.Data.SQLite用于C#语言编程,连接数据库文件,找了好久都没有找到,终于找到了!
这是一个用c#语言访问sqlite 的api接口,可用在project中引用system.data.sqlite.dll 即可访问sqlite数据库了。其中含有源码和几个实例。可供研究c#中的数据操作原理。
System.Data.SQLite .net数据库连接
.net开发SQLite数据库的System.Data.SQLite.DLL 和 SQLite.net.DLL chm帮助文件
C#读取一些C++创建的sqlite数据库时乱码, C++保存DB是用GB2312编码的, C#调用的官方的system.data.sqlite是用的UTF-8编码的, 在读取时会乱码, 用一个GB2312编码的system.data.sqlite就行了.
SystemDataSqlite.To.SqlCipher 一种将System.Data.SQLite加密的Sqlite数据库迁移到SQLCipher加密的数据库的工具
SQLite自动切换32位与64位,解决打包来回切换的问题,测试过没有任何问题,请放心使用
SQLite介绍在介绍System.Data.SQLite之前需要介绍一下SQLite,SQLite是一个类似于Access的单机版数据库管理系统,它将所有数据库的定义(包括定义、表、索引和数据本身)都保存在一个单一的文件中。并且,SQLite是一...
纯正System.Data.SQLite源代码,在.Net环境下安全调用SQLite数据库功能,是Mobile开发数据库首选。 此代码为截止目前最新文件(基于1.0.66.0),直接Hg更新。
SQLite数据库.net引用库 System.Data.SQLite.dll v1.0.112(通用版,32位,64位系统均支持)