当前位置:网站首页>Unity using Sqlite
Unity using Sqlite
2022-07-19 03:41:00 【zLulus】
I see online blogs talking about referencing sqlite3.dll,Mono.Data.Sqlite.dll,System.Data.dll,for example Setup Database (SQLite) for Unity
or using some of the third-party import methods unity-3rdparty-sqlite-net
or importing via third-party package management tools Unity3D introduction : How to manage Unity In the project NuGet package ? Use of third parties NuGet Package manager ——NuGetForUnity.
But I found out that Unity has libraries for Sqlite. It is Unity.VisualScripting.Dependencies.Sqlite.SQLiteConnection,The information is here:Unity.VisualScripting.Dependencies.Sqlite.SQLiteConnection
So I simply made a demo of inserting, deleting, and querying.
Unity.VisualScripting.Dependencies.Sqlite.SQLiteConnection can use directly without any references, so you can complete the operation of Sqlite.
Here is part of the key code.
Create Table
using (var db = new SQLiteConnection(databasePath, SQLiteOpenFlags.ReadWrite))
{
var count = db.CreateTable<UserInfo>();
count = db.CreateTable<RandomEvent>();
}
Insert Data
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<UserInfo> users = new List<UserInfo>();
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));
}
Modify Data
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));
}
Delete Data
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<UserInfo>(4);
}
Query Data
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<UserInfo>(user => user.Name.Contains("test"));
var datas2 = db.Find<RandomEvent>(randomEvent => randomEvent.Question.Contains("q"));
var data3 = db.Get<UserInfo>(1);
}
The data table needs to be declared.
[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; }
}
Sample Code
TestSqliteScript
After opening the project, you can execute it in the scene TestSqliteCanvas.
If you don’t feel comfortable using it, you can wrap another layer yourself~
边栏推荐
- Pure virtual function
- Chengxin University envi_ IDL second week class content: open hdf4 file and read the file, as well as simple data processing and saving + detailed analysis
- 基于Pandoc与VSCode的 LaTeX环境配置
- MySQL addition, deletion, query and modification (basic)
- leetcode162. Looking for peak
- oracle 查询 主机名和对应的IP地址
- 第二章 线性表
- Using gatekeeper to restrict kubernetes to create specific types of resources
- 上班摸鱼打卡模拟器微信小程序源码
- Implementation of address book for dynamic memory management
猜你喜欢

The third day of the three questions of Luogu daily (make up on the fourth day)

HRNet

通过OpenHarmony兼容性测评,大师兄开发板与丰富教培资源已ready

Subline快捷操作

Gnome boxes virtual machine creation and installation

Edge detection method -- first order edge detection

Frequency school and Bayes school

MySQL master-slave setup
![Theoretical basis of double Q-learning and its code implementation [pendulum-v0]](/img/f4/d281bf9e0534aed1d802d32ac35782.png)
Theoretical basis of double Q-learning and its code implementation [pendulum-v0]

Configure high availability using virtual ip+kept
随机推荐
leetcode 222. 完全二叉树的节点个数(必会)
本地存储localStorage⽤法详解
options has an unknown property ‘before‘
Oracle queries the host name and the corresponding IP address
Theoretical basis and code implementation of dueling dqn [pytoch + pendulum-v0]
动态管理内存的通讯录实现
Browser cannot open tensorboard
Unity solves the problem of Z-fighting caused by overlapping objects with the same material
Gdb+vscode for debugging 8 - use core to analyze dead cycles, deadlocks, and segment errors
未知宽高元素实现水平垂直居中的方法
web语义化(强调标签-em-斜体)(重点强调标签-strong-粗体)(自定义列表:dl、dt、dd)
Unity解决同材质物体重叠产生Z-Fighting的问题
基于Matlab的男女声音信号分析与处理
central limit theorem
leetcode:78. subset
洛谷每日三题之第五天
Latest installation tutorial of VMware Tools (rhel8)
Unicast、Multicast、Broadcast
Flutter development: running the flutter upgrade command reports an error exception:flutter failed to create a directory at... Solution
Vscode+ros2 environment configuration