目录
概述
SQLite作为一个轻量级的数据库,再很大程度上可以满足单机数据文件的记录功能。
为了满足本人懒惰的性格,就研究了一下可以根据所给的字段,自动管理一些SQL语句的Helper 类。
如下图为类的树状显示:
其中包含了字段类【SQTableField】、字段集合类【SQTableFieldCollect】、
SQLite基础类【SQLiteBase】、SQLite操作类【SQLiteOperate】
还有SQLite 的运算符枚举类 和 数据类型枚举类。
字段集合类
在字段集合类【SQTableFieldCollect】中包含了 转换为创建字段命令【ToCreateCmd()】、
转换为插入数据命令【ToInsertCmd()】、转换为更新命令【ToUpdateCmd()】
这么做的好处就是,使用的时候,只需要建立一个
new SQTableField();
然后 add 到【SQTableFieldCollect】中,剩下 命令的生成就由这几个转换方法帮助我们解决了。
减少了我们花费时间做Data、写命令string 的麻烦。
操作类
在操作类里包含了SQLite 一些基本的操作,如增删改、创建表、删除表、查询等等。
【该Helper将会持续更新】
附一个简单的使用示例:
添加引用
using SQLiteHelper;
初始化SQLite操作类
string FolderPath = @"C:\";
string DataBaseName = "MyDb.db";
SQLiteOperate sOperate = new SQLiteOperate(FolderPath,DataBaseName);
在创建操作类的时候,会自动根据文件夹路径,检查是否存在指定DataBaseName的数据库文件,如果不存在将会新建一个指定名字的数据库文件。之后,这个sOperate对象连接的就是这个数据库。
如果需要操作其他的数据库文件,只需要new 一个新的SQLiteOperate 即可。
新建字段集合
SQTableFieldCollect sQTableFields = new SQTableFieldCollect();
向字段集合内添加字段
sQTableFields.Add(new SQTableField()
{
fName = "ID",
dType = SQDataType.INTEGER,
pKeyEnable = true,
});
sQTableFields.Add(new SQTableField()
{
fName = "日期时间",
dType = SQDataType.DATETIME,
});
for (int k = 0; k < 10; k++)
{
sQTableFields.Add(new SQTableField()
{
fName = string.Format("数据{0}", k),
dType = SQDataType.TEXT,
dLength = 20,
});
根据所建立的字段集合 创建新表 ,如果存在指定Tablename 的表则会立即返回
if (sQTableFields.Count <= 0)
return;
string tablename = "Table1";
//创建新表,如果存在指定Tablename 的表则会立即返回
sOperate.CreateNewTable(tablename, sQTableFields);
根据所建立的字段集合,发现包含新的字段 向指定表内添加新的字段
foreach (SQTableField fieldName in sQTableFields)
{
sOperate.AddField(tablename, fieldName);
}
字段类中有一个Value,通过这个属性可以添加值,之后插入数据表中
sQTableFields[1].Value = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
for (int k = 2; k < 12; k++)
{
sQTableFields[k].Value = k;
}
if (sQTableFields.Count <= 0)
return;
string tablename = "Table1";
sOperate.Insert(tablename, sQTableFields);