UNITY-关于读取数据库的代码使用

tech2024-10-20  10

Unity 使用数据库要先导入三个dll (Mono.Data.Sqlite \ System.Date \ Sqlite3)

首先找到Unity源路径找到前两个dll (这个dll只能使用自己的)

 

三个dll都需要放到Assets/Pligins(该文件夹需要自己创建) Unity2018放进去会报错,把System.Date删掉就好了

此次使用的SQL软件是SQList一款轻量级数据库软件

 

数据库主要学三个类 : SqliteCommand(数据库连接对象) \ SqliteCommand (数据库指令对象) \ SqliteDataReader(数据读取对象)

 

 

 

数据库的使用,读取和使用的方法都写在代码中了,注释写得很清楚,都是一些常用操作,希望可以帮到和我一样处于学习阶段的你们

using UnityEngine; using Mono.Data.Sqlite; public class SQLDemo : MonoBehaviour { //数据库连接对象 private SqliteConnection con; //数据库指令对象 private SqliteCommand command; private string connectionStr; //数据库读取对象 private SqliteDataReader reader; private void Start() { //数据源路径 connectionStr = "Data Source = " + Application.streamingAssetsPath + "/HeroDatabase.sqlite"; //Debug.Log(connectionStr); //实例化连接对象 con = new SqliteConnection(connectionStr); //打开连接 con.Open(); //建立指令对象,不要使用new,这样是使用当前连接的数据库 command = con.CreateCommand(); //设置SQL语句 command.CommandText = "Insert Into HeroTable VALUES('皮城女警1',1,120,20)"; //执行,有三个方法 //第一种,返回int,该方法执行不了查询语句,返回受影响的行数【通常适用于增删改】 int rows = command.ExecuteNonQuery(); /*第二种,执行SQL语句 *设置SQL语句 *command.CommandText = "Update HeroTable Set HeroLevel=2 WHERE HreoName='皮城女警'" *command.CommandText = "Select HeroAD FromTable Where HeroName='皮城女警'"; * *执行SQL语句,返回查询到的第一个结果(第一行第一列) *object selectResult = command.ExecuteScalar(); */ /*设置SQL语句 *command.CommandText = "Select * From HeroTable"; *执行SQL语句,并返回所有查询到的结果到读取器 *reader = command.ExecuteReader(); *如果读取数据? *读取下一行数据,如果没有下一行返回false,否在返回true *reader.Read(); 读第一行 *reader.Read(); 读第二行 *reader.Read(); 读第三行 *读全部 *while(reader.Read()) *{ * reader.FieldCount//列数 * for(int i = 0, i < Reader.FielCount; i++) * { * object val = reader.GetValue(i)//获取一行数据中的第i个,读取的类型都是object * } *} *reader.Close();//关闭读取器,如果不关闭,不能读取下一个 */ } /// <summary> /// 当应用程序关闭时候调用一次 /// </summary> private void OnApplicationQuit() { //释放对象 command.Dispose(); //关闭连接 con.Close(); } //#if #endif 可以用于判断在那个平台运行,平台名可以看下面的图 //因为不同系统流文件路径不一样 #if UNITY_ANDROID //在安卓平台运行 #endif }

务必记得释放资源 reader.close(),command.Dispose(),con.Close().

其中connectionStr表示的流路经里面并没有StreamingAssets文件夹,需要自己在Assets文件夹内创建,并把数据库文件放进去

 

最新回复(0)