当前位置:网站首页>Unity 使用Sqlite
Unity 使用Sqlite
2022-07-01 05:22:00 【zLulus】
我看网上都在讲引用sqlite3.dll,Mono.Data.Sqlite.dll,System.Data.dll,比如Setup Database (SQLite) for Unity
或者第三方的一些导入方式unity-3rdparty-sqlite-net
或者通过第三方包管理工具导入Unity3D 入门:如何管理 Unity 项目中的 NuGet 包?使用第三方 NuGet 包管理器——NuGetForUnity
但我发现Unity有关于Sqlite的库Unity.VisualScripting.Dependencies.Sqlite.SQLiteConnection,资料有Unity.VisualScripting.Dependencies.Sqlite.SQLiteConnection
所以我就简单做了个增删改查的demo,Unity.VisualScripting.Dependencies.Sqlite.SQLiteConnection可以直接使用,可以完成对Sqlite的操作
下面是关键代码
创建表
using (var db = new SQLiteConnection(databasePath, SQLiteOpenFlags.ReadWrite))
{
var count = db.CreateTable<UserInfo>();
count = db.CreateTable<RandomEvent>();
}
增加数据
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));
}
修改数据
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<UserInfo>(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<UserInfo>(user => user.Name.Contains("test"));
var datas2 = db.Find<RandomEvent>(randomEvent => randomEvent.Question.Contains("q"));
var data3 = db.Get<UserInfo>(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; }
}
示例代码
TestSqliteScript
打开项目后,在TestSqliteCanvas下即可执行
如果觉得有不合适的地方,可以自己再封装一层~
边栏推荐
- [NLP Li Hongyi] notes
- Global and Chinese market of solder wire 2022-2028: Research Report on technology, participants, trends, market size and share
- Rust基础入门之变量绑定与解构
- Day 05 - file operation function
- eBPF Cilium实战(2) - 底层网络可观测性
- AcWing 886. Finding combinatorial number II (pretreatment factorial)
- Introduction of 3D Modeling and Processing Software Liu Ligang, Chinese University of Science and Technology
- [RootersCTF2019]babyWeb
- 如何选择导电滑环材料
- Use of STM32 expansion board temperature sensor and temperature humidity sensor
猜你喜欢

複制寶貝提示材質不能為空,如何解决?

Rainbond结合NeuVector实践容器安全管理

Rainbow combines neuvector to practice container safety management
![Is there any good website or software for learning programming? [introduction to programming]?](/img/ae/68a5880f313c307880ac80bd200530.jpg)
Is there any good website or software for learning programming? [introduction to programming]?

Leetcode316- remove duplicate letters - stack - greedy - string

Use and principle of wait notify

tar命令

云原生存储解决方案Rook-Ceph与Rainbond结合的实践

Summary of spanner's paper

Application of industrial conductive slip ring
随机推荐
Actual combat: gateway api-2022.2.13
TypeORM 框架
Global and Chinese markets of gps/gnss receiver modules 2022-2028: Research Report on technology, participants, trends, market size and share
担心侵权?必备无版权素材网站分享,不用担心视频剪辑缺素材
Rust基础入门之变量绑定与解构
Use and principle of Park unpark
How to meet the requirements of source code confidentiality and source code security management
busybox生成的东西
Global and Chinese market of mainboard 2022-2028: Research Report on technology, participants, trends, market size and share
Vmware workstation network card settings and three common network modes
Worried about infringement? Must share copyrightless materials on the website. Don't worry about the lack of materials for video clips
Tcp/ip explanation (version 2) notes / 3 link layer / 3.2 Ethernet and IEEE 802 lan/man standards
Design and application of immutable classes
Practice of combining rook CEPH and rainbow, a cloud native storage solution
Mathematical knowledge: finding the number of divisors
Single page application
AcWing 885. Find the combination number I (recursive preprocessing)
Global and Chinese markets of InGaAs APD arrays 2022-2028: Research Report on technology, participants, trends, market size and share
Unity drags and modifies scene camera parameters under the editor
Distributed - summary list