当前位置:网站首页>Unity using Sqlite
Unity using Sqlite
2022-07-17 01:33: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 入门:如何管理 Unity 项目中的 NuGet 包?使用第三方 NuGet 包管理器——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~
边栏推荐
- [NoSQL] redis high availability and persistence
- ES6 learning notes - brother Ma at station B
- 基于Matlab的男女声音信号分析与处理
- Ubuntu clear CUDA cache
- ncnn DataReader&Extractor&blob
- 10. Redis 面试常见问答
- 論文閱讀:U-Net++: Redesigning Skip Connections to Exploit Multiscale Features in Image Segmentation
- Yolov6 learning first chapter
- Oracle closes the recycle bin
- 2.9.2 digital type processing and convenient methods of ext JS
猜你喜欢

Zabbix6.0 monitors Dell and IBM server hardware through Idrac and imm2
![Theoretical basis of doubledqn and its code implementation [pytoch + pendulum-v0]](/img/f2/4a3cc8e5173789111080915aceb9fd.png)
Theoretical basis of doubledqn and its code implementation [pytoch + pendulum-v0]

洛谷每日三题之第三天(第四天补做)

Gnome boxes virtual machine creation and installation

Yolov6 learning first chapter

Rhce8 Study Guide Chapter 2 use of basic commands
![Monte Carlo based reinforcement learning method [with code implementation]](/img/39/346b2f4122238eb0d51ca164ab6d86.png)
Monte Carlo based reinforcement learning method [with code implementation]

IEEE754 standard floating point format

Leetcode: subsequence problem in dynamic programming

論文閱讀:U-Net++: Redesigning Skip Connections to Exploit Multiscale Features in Image Segmentation
随机推荐
Net SNMP development I
第一章 绪论
Method of realizing horizontal and vertical centering of unknown width and height elements
CorelDRAW cannot be installed. Solution
Theoretical basis of doubledqn and its code implementation [pytoch + pendulum-v0]
oracle 关闭回收站
爬虫学习(5):手把手教你爬虫requests实战演练
Dive into deep learning - 2.2 data preprocessing
Leetcode: multiple knapsack problem in dynamic programming [one template solves all ~]
Win10 onedrive failure reinstallation
机器学习库Scikit-Learn(线性模型、岭回归、插入一列数据(insert)、提取所需列、向量机(SVM)、聚类)
MySQL 增删查改(基础)
Rhce8 Learning Guide Chapter 1 installing rhel8.4
Browser cannot open tensorboard
Unicast、Multicast、Broadcast
In depth understanding of machine learning - unbalanced learning: sample sampling technology - [smote sampling method and borderline smote sampling method of manual sampling technology]
Win10 network connection shows no network but Internet access
通过Dao投票STI的销毁,SeekTiger真正做到由社区驱动
Reptile learning (5): teach you reptile requests practice hand in hand
Oracle queries the host name and the corresponding IP address