使用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的更多相关文章

  1. Unity3D连接sqlite数据库操作C#版

    unity3d有自己对应的sqlite.dll分别需要三个文件 1.Mono.Data.Sqlite.dll 在unity安装文件“Unity\Editor\Data\MonoBleedingEdge ...

  2. unity3d连接Sqlite并打包发布Android

    连接Sqlite首先要把dll程序集导入到unity3d工程里面.安装好的unity中可以找到

  3. Unity3D游戏开发之SQLite让数据库开发更简单

    各位朋友大家好.欢迎大家关注我的博客,我是秦元培,我是博客地址是http://blog.csdn.net/qinyuanpei.在经历了一段时间的忙碌后,博主最终有时间来研究新的东西啦,今天博客向和大 ...

  4. [转载]Unity3D 游戏引擎之使用C#语言建立本地数据库(SQLITE)

    以前在开发中一直使用IOS源生的数据库,通过传递消息的形式在与Unity3D中进行交互.本文我在详细说说如何使用C#语言来在MAC 操作系统下创建Unity本地数据库,我是C#控哇咔咔--- 首先你需 ...

  5. Unity3d 中 将远程 MySQL 数据库转换为本地 Sqlite

    1.创建MySQL2Sqlite脚本mysql2sqlite.sh:(代码地址:https://gist.github.com/esperlu/943776) #!/bin/sh # Converts ...

  6. 【Unity3D】使用MD5值,确保本地Sqlite数据库内容没有被篡改

    Sqlite的应用场景 在判断是否使用存储格式为Sqlite模式的标准,我们的标准是内容只读.也就是说,除非发布者修改Sqlite内容,玩家只有读取的权限. 换个角度说,Sqlite里面的数据都是游戏 ...

  7. unity3d sqlite数据库的读写方法

    首先,我们要从unity的安装路径中复制mono.data.sqlite.dll和sqlite3.dll两个动态链接库到untiy的plugins目录下,如下图所示: 使用navicat for sq ...

  8. Unity3D上可以发布到IOS使用的SQLite数据库

    地址:https://github.com/codecoding/SQLite4Unity3d Unity5.1.1f 发布,在IOS 8.3上亲测可用,Android好像有点问题. 也可用参考下这个 ...

  9. unity3d 免费好用的数据库处理框架 数据库直连框架

    一.概述 前不久有一个哥们做PC游戏开发的.使用到Unity3d, 正好找到我. 我给他提供了Unity3d如何Moon.Orm来智能化编程的方式. 我们先看看怎么更加便捷sqlite. http:/ ...

随机推荐

  1. Intellij IDEA运行报Command line is too long解法

    修改项目下 .idea\workspace.xml,找到标签 <component name="PropertiesComponent"> , 在标签里加一行  < ...

  2. MySQL中经典的too many connection怎么破

    文章来源:云栖社区,经同意授权转载 链接:https://yq.aliyun.com/articles/226984?spm=5176.8091938.0.0.nCksaV 错误解决记录:java d ...

  3. redux有价值的文档

    使用 Redux 管理状态,第 1 部分 https://www.ibm.com/developerworks/cn/web/wa-manage-state-with-redux-p1-david-g ...

  4. oc语言的特征

    类型结构+运行时 内存管理:引用计数与析构 并发:gcd 函数式:block

  5. flux沉思录:面向store和通信机制的前端框架

    一.综述 Flux 被用来描述“单向”的数据流,且包含某些特殊的事件和监听器. 响应式编程是一种面向数据流和变化传播的编程范式 flux是响应式编程的一种? Flux 在本质上采用了模型-视图-控制器 ...

  6. python 定时任务 from apscheduler.schedulers.blocking import BlockingScheduler

    说明:使用python内置的模块来实现,本篇博客只是以循环定时来示范,其他的可以结合crontab的风格自己设定 一.导包 from apscheduler.schedulers.blocking i ...

  7. 学习:多字节编码(ANSI)和UNICODE编码的关系

    Windows 既可以使用 Unicode 字符集又可以使用传统的字符集(如多字节编码)来实现对多种语言的支持,以适应国际市场的要求.与传统的字符集编码相比,Unicode 是世界通用的字符编码标准, ...

  8. [教程]Ubuntu16.04安装texstudio

    [教程]Ubuntu16.04安装texstudio step 1 首先要下载texlive. 不会的戳这里 然后直接终端命令 sudo apt-get install texstudio step ...

  9. 014_matlab读取ecxel(直接导入)

    视频教程:https://v.qq.com/x/page/c3039b5htwx.html 资料下载:https://download.csdn.net/download/xiaoguoge11/12 ...

  10. 面向开发人员的Windows错误报告(WER)

    Windows错误报告是更新的Windows XP上Dr.Watson的替代品.它监视故障并收集可以发送到要分析的服务器(如果用户允许)的有用信息.这项功能帮助微软修复了很多错误——由于收到的报告,微 ...