C# Sqlite工具类

久未写博客。。。除了上代码依然不知道说啥,这就只是一个封装了数据库命令的工具

参考了雨松的工具类 http://www.xuanyusong.com/archives/831

只是在条件方便改写了一下,增加了 Operation 类,通过组合类实现条件的编写

new DbLogicalAND(new DbCompareLessThan("id","10"), new DbCompareNotEqual("id","0"));
以上说的是 id<10 AND id!=0


代码已上传至Github:https://github.com/pinzeweifen/demo/tree/master/Unity/Sqlite


使用示例:

using UnityEngine;
using UnityEditor;
using Database;

public class EditorTest : EditorWindow
{
    [MenuItem("Tool/Test")]
    static void Init()
    {
        //链接数据库,如果数据库不存在自动创建
        DbAccess db = new DbAccess("article.db");

        //创建表,它包含有 TEXT类型 的 name 列  和 INTEGER类型 的 id 列。id 为主键,name和id列不能为空
        db.CreateTable("equip", new string[] { "name", "id" }, new DataType[] { DataType.TEXT, DataType.INTEGER }, 1, new int[] { 0, 1 });

        //是否已经创建 equip 表
        Debug.Log(db.IsCreateTable("equip"));

        //向 equip 表插入 name 为 qq , id 为 666 的数据
        db.InsertInto("equip", new string[] { "qq","666" });

        //向 equip 表插入 列 name 为 aa 的数据
        db.InsertIntoSpecific("equip", new string[] { "name" }, new string[] { "aa" });

        //更改 equip 表 id 等于 666 的数据,把 id 改为 999
        db.UpdateInto("equip", new string[] { "id" }, new string[] { "999" }, new DbCompareEqual("id", "666"));

        //删除 equip 表的 name 等于 aa 的行
        db.Delete("equip", new DbCompareEqual("name", "aa"));
        
        //查找 equip 表所有数据
        var data = db.Select("equip", new string[] { "*" });
        while (data.Read())
        {
            Debug.Log(data.GetValue(0)+"|"+data.GetValue(1));
        }

        //查找 name 列以 q 开头的所有数据
        data = db.SelectWhere("equip", new string[] { "id" }, new DbLogicalLIKE("name", "q%"));
        while (data.Read())
        {
            Debug.Log(data.GetValue(0));
        }

        //清空表
        db.DeleteContents("equip");
        
        //删除表
        db.DropTable("equip");
        
        //关闭数据库链接
        db.CloseSqlConnection();
    }
}

猜你喜欢

转载自blog.csdn.net/qq_17813937/article/details/79418925