如有谬误,欢迎指正
数据库在unity中主要用于数据存档,比如游戏进度等各类当重启游戏时需要紧接上次游戏退出时执行的数据.在数据库中读取数据的代码过程主要有,打开数据库,根据数据库语句进行数据库的增删改查等操作,关闭数据库等一般情况下,如有不同的操作要求,只需填入相对应的数据库语句即可.
在此之前,我们需要先明确几个词:数据库/表/列/数据,他们的关系是这样的:一个数据库中可以存储若干个表,每个表中可以存储若干个列,每一列中可以存储若干个数据
dll文件和sqlite数据库下载,提取码 i3ta
1.首先新建脚本类SQLiteScript,引入命名空间
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Mono.Data.Sqlite;
using System.Data;
public class SQLiteScript
{
//创建数据库连接对象
SqliteConnection con;
//数据库命令对象,用来执行数据库的增删改查语句
SqliteCommand command;
/// <summary>
/// 数据库读取器
/// </summary>
SqliteDataReader reader;
/// <summary>
/// 数据库的存放路径
/// </summary>
string path;
2.打开数据库函数
public void OpenConnect()
{
try
{
path = "data source=" + Application.dataPath + "/lushi.sqlite";
//创建数据库连接对象
con = new SqliteConnection(path);
//打开数据库
con.Open();
//实例化数据库命令对象
command = con.CreateCommand();
}
catch (System.Exception)
{
print("数据库打开失败!");
}
}
3.关闭数据库的函数
public void CloseConnect()
{
try
{
con.Close();
}
catch (System.Exception)
{
print("数据库关闭错误!");
}
}
4.通过sql语句对数据库表格进行增删改的操作
public void ExcuteBySqlQuery(string query)
{
command.CommandText = query;
command.ExecuteNonQuery();//执行语句
}
5.因为最近正在做一个卡牌游戏,所以此处用棋牌游戏的存档做个例子
数据库语句,是你实现功能的核心,更改为不同的语句,便可以达到不同的效果,具体你需要什么对应哪个语句,可以从网上查询.另外因为此语句在代码中一般由几个字符串拼接而成,所以在书写时,一定要注意各类标点符号和空格等!!!
SQLite语法查询
///
/// 向某数据库中添加卡牌
///
/// 要更新的数据库表格名称
/// 添加的卡牌名称
public void AddKaToSql(string TableName, string QiPaiName)
{
OpenConnect();//打开数据库
string query = "INSERT INTO " + TableName + “(KaName) VALUES(’” + KaName + “’)”;//这个语句的意思是向名为TableName这个表中的KaName这个列中,添加一条名为QiPaiName的数据
ExcuteBySqlQuery(query);//执行语句
CloseConnect();//关闭数据库
}
6.从数据库中获取数据
/// <summary>
/// 得到数据库中的数据集合
/// </summary>
/// <param name="tableName">数据库的名称</param>
/// <returns></returns>
public List<string> GetDataBySqlQuery(string tableName)
{
List<string> list = new List<string>();
OpenConnect();
command.CommandText = "select kaname from " + tableName;//这个语句的意思是:获取名为tableName的表中的kaname列里面的所有数据
reader = command.ExecuteReader();
while (reader.Read())
{
for (int i = 0; i < reader.FieldCount; i++)
{
object obj = reader.GetValue(i);
list.Add(obj.ToString());
}
}
reader.Close();
CloseConnect();
return list;
}
最后,数据库中其实还有很多操作,在这里就不再一一展示了.