Unity 使用Sqlite

using (var db = new SQLiteConnection(databasePath, SQLiteOpenFlags.ReadWrite))
{
    var count = db.CreateTable();
    count = db.CreateTable();
}

增加数据

using (var db = new SQLiteConnection(databasePath, SQLiteOpenFlags.ReadWrite))
{
    var count = db.Insert(new UserInfo()
    {
        Name = "test1Name",
        Sex = SexEnum.Woman,
        Birthday = new DateTime(1990, 10, 2)
    }, typeof(UserInfo));
    List users = new List();
    users.Add(new UserInfo()
    {
        Name = "test2Name",
        Sex = SexEnum.Man,
        Birthday = new DateTime(2000, 10, 2)
    });
    users.Add(new UserInfo()
    {
        Name = "test3Name",
        Sex = SexEnum.Woman,
        Birthday = new DateTime(2004, 10, 2)
    });
    count = db.InsertAll(users, typeof(UserInfo));
}

修改数据

using (var db = new SQLiteConnection(databasePath, SQLiteOpenFlags.ReadWrite))
{
    var count = db.Update(new UserInfo()
    {
        Id = 3,
        Name = "test1Name-Update",
        Sex = SexEnum.Woman,
        Birthday = new DateTime(1990, 10, 2)
    }, typeof(UserInfo));
}

删除数据

using (var db = new SQLiteConnection(databasePath, SQLiteOpenFlags.ReadWrite))
{
    string sql = "select Id,Name,Sex,Birthday from UserInfo where Id =3";
    var data = new object[] { "Id", "Name", "Sex", "Birthday" };
    var deleteData = db.Query(new TableMapping(typeof(UserInfo)), sql, data).FirstOrDefault();
    if (deleteData != null)
    {
        var count = db.Delete(deleteData);
    }

    var count2 = db.Delete(4);
}

查询数据

using (var db = new SQLiteConnection(databasePath, SQLiteOpenFlags.ReadWrite))
{
    string sql = "select Id,Question,[Order] from RandomEvent";
    var data = new object[] { "Id", "Question", "[Order]" };
    var datas = db.Query(new TableMapping(typeof(RandomEvent)), sql, data);

    //enum not work :(
    //var datas2 = db.Find(user => user.Name.Contains("test"));
    var datas2 = db.Find(randomEvent => randomEvent.Question.Contains("q"));

    var data3 = db.Get(1);
}

数据表需要做声明

[Table(name: nameof(RandomEvent))]
public class RandomEvent
{
    [PrimaryKey, AutoIncrement]
    public int Id { get; set; }
    public string Question { get; set; }
    public int Order { get; set; }
}
[Table(name: nameof(UserInfo))]
public class UserInfo
{
    [PrimaryKey, AutoIncrement]
    public int Id { get; set; }
    public string Name { get; set; }
    public SexEnum Sex { get; set; }
    public DateTime Birthday { get; set; }
}

如果觉得有不合适的地方,可以自己再封装一层~

Original: https://blog.csdn.net/sinat_23050697/article/details/125530679
Author: zLulus
Title: Unity 使用Sqlite

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/816399/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球