Unity3D 使用SQLite
使用Unity操作SQLite,需要用到三个库文件,分别是Mono.Data.Sqlite.dll和System.Data.dll和Sqlite3.dll,前两个库文件可以在unity中找到,具体步骤:先找到unity安装位置,具体路径如下
(许多人都推荐去2.0目录中找,我用的是4.5,因为2.0会报错),Sqlite3.dll可以去官网下载
配置好环境就可以对数据库进行操作了
这是一些常用操作
using UnityEngine;
using Mono.Data.Sqlite;
using System; ///<summary>
///数据库辅助类
///</summary>
public class SQLiteHelp
{
private SqliteConnection dbConnection;
private SqliteCommand dbCommand;
private SqliteDataReader dbReader; public SQLiteHelp(string conStr)
{
OpenSQLite(conStr);
} //打开数据库
public void OpenSQLite(string conStr)
{
try
{
dbConnection = new SqliteConnection(conStr);
dbConnection.Open();
Debug.Log("Connect successful!");
}
catch (Exception ex)
{
Debug.Log(ex.Message);
}
} //创建表
public SqliteDataReader CreateTable(string tabName, string[] col, string[] colType)
{
if (col.Length != colType.Length)
{
throw new SqliteException("columns.Length != colType.Length");
} string query = "CREATE TABLE " + tabName + " (" + col[] + " " + colType[]; for (int i = ; i < col.Length; ++i)
{
query += ", " + col[i] + " " + colType[i];
} query += ")"; return ExecuteQuery(query);
} //连接数据库
public void CloseSqlConnection() {
if (dbCommand != null)
{
dbCommand.Dispose();
}
dbCommand = null; if (dbReader != null)
{
dbReader.Dispose();
}
dbReader = null; if (dbConnection != null)
{
dbConnection.Close();
}
dbConnection = null; Debug.Log("Disconnected from db.");
} //执行sqlQuery操作
public SqliteDataReader ExecuteQuery(string sqlQuery)
{
dbCommand = dbConnection.CreateCommand();
dbCommand.CommandText = sqlQuery;
dbReader = dbCommand.ExecuteReader(); return dbReader;
} //插入数据
public SqliteDataReader InsertInto(string tableName, string[] values)
{
string query = "INSERT INTO " + tableName + " VALUES (" + values[]; for (int i = ; i < values.Length; ++i)
{
query += ", " + values[i];
} query += ")"; return ExecuteQuery(query);
} //查找表中所有数据
public SqliteDataReader ReadFullTable(string tableName)
{
string query = "SELECT * FROM " + tableName; return ExecuteQuery(query);
} //查找表中指定数据
public SqliteDataReader ReadSpecificData(string tableName, string selectkey, string selectvalue)
{
string query = "SELECT * FROM " + tableName + " where " + selectkey + " = " + selectvalue + " "; return ExecuteQuery(query);
} //更新数据 SQL语法:UPDATE table_name SET column1 = value1, column2 = value2....columnN = valueN[WHERE CONDITION];
public SqliteDataReader UpdateInto(string tableName, string[] cols, string[] colsvalues, string selectkey, string selectvalue)
{
string query = "UPDATE " + tableName + " SET " + cols[] + " = " + colsvalues[]; for (int i = ; i < colsvalues.Length; ++i)
{
query += ", " + cols[i] + " =" + colsvalues[i];
} query += " WHERE " + selectkey + " = " + selectvalue + " "; return ExecuteQuery(query);
} //删除表中的内容 DELETE FROM table_name WHERE {CONDITION or CONDITION}(删除所有符合条件的内容)
public SqliteDataReader Delete(string tableName, string[] cols, string[] colsvalues)
{
string query = "DELETE FROM " + tableName + " WHERE " + cols[] + " = " + colsvalues[]; for (int i = ; i < colsvalues.Length; ++i)
{
query += " or " + cols[i] + " = " + colsvalues[i];
} return ExecuteQuery(query);
} //插入指定的数据
public SqliteDataReader InsertIntoSpecific(string tableName, string[] cols, string[] values)
{
if (cols.Length != values.Length)
{
throw new SqliteException("columns.Length != values.Length");
} string query = "INSERT INTO " + tableName + "(" + cols[]; for (int i = ; i < cols.Length; ++i)
{
query += ", " + cols[i];
} query += ") VALUES (" + values[]; for (int i = ; i < values.Length; ++i)
{
query += ", " + values[i];
} query += ")"; return ExecuteQuery(query);
} //判断在指定列名中是否存在输入的值
public bool ExitItem(string tableName,string itemName,string itemValue)
{
bool flag = false; dbReader = ReadFullTable(tableName); while (dbReader.Read())
{
for(int i=; i<dbReader.FieldCount; i++)
{
if(dbReader.GetName(i) == itemName)
{
if(dbReader.GetValue(i).ToString() == itemValue)
{
flag = true;
break;
}
}
}
} return flag;
}
}
如果不清楚SQLite基本操作,可以访问:https://www.yiibai.com/sqlite/date-and-time.html
Unity3D 使用SQLite的更多相关文章
- Unity3D连接sqlite数据库操作C#版
unity3d有自己对应的sqlite.dll分别需要三个文件 1.Mono.Data.Sqlite.dll 在unity安装文件“Unity\Editor\Data\MonoBleedingEdge ...
- unity3d连接Sqlite并打包发布Android
连接Sqlite首先要把dll程序集导入到unity3d工程里面.安装好的unity中可以找到
- Unity3D游戏开发之SQLite让数据库开发更简单
各位朋友大家好.欢迎大家关注我的博客,我是秦元培,我是博客地址是http://blog.csdn.net/qinyuanpei.在经历了一段时间的忙碌后,博主最终有时间来研究新的东西啦,今天博客向和大 ...
- [转载]Unity3D 游戏引擎之使用C#语言建立本地数据库(SQLITE)
以前在开发中一直使用IOS源生的数据库,通过传递消息的形式在与Unity3D中进行交互.本文我在详细说说如何使用C#语言来在MAC 操作系统下创建Unity本地数据库,我是C#控哇咔咔--- 首先你需 ...
- Unity3d 中 将远程 MySQL 数据库转换为本地 Sqlite
1.创建MySQL2Sqlite脚本mysql2sqlite.sh:(代码地址:https://gist.github.com/esperlu/943776) #!/bin/sh # Converts ...
- 【Unity3D】使用MD5值,确保本地Sqlite数据库内容没有被篡改
Sqlite的应用场景 在判断是否使用存储格式为Sqlite模式的标准,我们的标准是内容只读.也就是说,除非发布者修改Sqlite内容,玩家只有读取的权限. 换个角度说,Sqlite里面的数据都是游戏 ...
- unity3d sqlite数据库的读写方法
首先,我们要从unity的安装路径中复制mono.data.sqlite.dll和sqlite3.dll两个动态链接库到untiy的plugins目录下,如下图所示: 使用navicat for sq ...
- Unity3D上可以发布到IOS使用的SQLite数据库
地址:https://github.com/codecoding/SQLite4Unity3d Unity5.1.1f 发布,在IOS 8.3上亲测可用,Android好像有点问题. 也可用参考下这个 ...
- unity3d 免费好用的数据库处理框架 数据库直连框架
一.概述 前不久有一个哥们做PC游戏开发的.使用到Unity3d, 正好找到我. 我给他提供了Unity3d如何Moon.Orm来智能化编程的方式. 我们先看看怎么更加便捷sqlite. http:/ ...
随机推荐
- pm2日志管理插件
pm2的日志模块默认是每一个服务进程都分配两个默认的日志文件 普通日志 错误日志 这两个日志文件存放于/root/.pm2/logs中,如果pm2管理5个服务,那么该文件夹下总共有10个日志文件,并且 ...
- jdk1.8——jvm分析与调优
很多文章都是讲如何配置JVM各个参数的,但是生产环境里参数的值到底配置为多少,却没有一个具体的指标.文章分四个部分,分别是JVM说明.配置,GC的过程和具体配置值. 一.JVM空间说明 JDK 1.7 ...
- POJ3259-Wormholes-( spfa || Bellman_Ford )
题意:有n块田,之间有m条无向边表示路径,权值表示走过需要花费的时间.有w对虫洞,虫洞是单向的,表示穿越一定时间到过去,并且回到虫洞指向的点,问一个人有没有可能通过虫洞回到某个起点,并且在从这个起点出 ...
- docker 空间清理
https://blog.csdn.net/qq_28001193/article/details/79555177 清理之后,重要的是找到原因,如上连接所示,其中一个占空间比较大的是日志文件,除了考 ...
- python-随机生成验证码实例
需求:随机生成验证码, 思路: 1.生成一个随机数,65-90 2.数字转化为字母:chr(数字) #!/usr/bin/env python # -*- coding:utf-8 -*- impor ...
- kuma kong 团队开发的可视化&&安全的service mesh
最近service mesh 的开源产品是越来越多了,好多团队都开源了自己的解决方案 maesh 最近kong 团队也开源了自己的service meshkuma 一张参考图 说明 kuma 没有基于 ...
- artillery强大灵活的负载测试套件
artillery是基于nodejs 编写的负载测试套件支持http&&socket.io&&websockets&&kinesis&& ...
- To ssh://xxx.com:8022/test/project.git ! [remote rejected] master -> master (pre-receive hook declined) error: failed to push some refs to 'ssh://xxx.com:8022/test/project.git'
To ssh://xxx.com:8022/test/project.git ! [remote rejected] master -> master (pre-receive hook dec ...
- 如果要对一些数据做处理,可以直接用自定义fliter
{{[offer.brand, offer.series, offer.model] | carFilter}} filters里面写 carFilter ([brand, series, model ...
- 冰多多团队-第五次Scrum会议
冰多多团队-第五次Scrum会议 工作情况 团队成员 已完成任务 待完成任务 zpj 部分Action整合, 接入语音接口,整合项目解决兼容性问题 ASR bug修复 牛雅哲 跑通了科大讯飞语法识别的 ...