使用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. DataNode 工作机制

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/qq_35641192/article/d ...

  2. MSAA简介

    https://www.cnblogs.com/gnagwang/archive/2010/04/20/1716006.html MSAA的全称是Microsoft Active Accessibil ...

  3. 第六次作业--static关键字、对象

    ##题目一 ##Computer package Train.Method.TeachDemo.Thread.Fuction; /** * 求n的阶乘算法 * @author 喵 * @date 20 ...

  4. ABP 03 解决 编辑User报错

    1.编辑用户时,报错.后面有跟解决方案. 解决方案1: 2.导致出错的原因是这样的,这里的功能是请求服务端的html页面,渲染后显示编辑页面. 关键点是默认参数那儿 路径:\aspnet-core\s ...

  5. ImportError: cannot import name 'DjangoSuitConfig'

    pip3.6 install https://github.com/darklow/django-suit/tarball/v2

  6. LSF 作业系统常用命令

    LSF(Load Sharing Facility)是一个被广泛使用的作业管理系统,具有高吞吐.配置灵活的优点.通过 LSF 集中监控和调度,可以充分利用计算机的CPU.内存.磁盘等资源. bqueu ...

  7. js 创建xml元素

    function createXML(pathData) { var xmlDOM = createXMLDOM(); //参考:http://iceworldvip.blog.51cto.com/5 ...

  8. eclipse Target runtime com.genuitec.runtime.generic.jee50 is not defined

      1.情景展示 报错信息如下: 2.原因分析 使用eclipse导入myeclipse时,唯独这个报错信息改不了. 需要通过修改这个项目的配置文件才行. 3.解决方案 第一步:切换到导航视图: 第二 ...

  9. 后台接收参数报错 Required String parameter 'id' is not present

    来自:https://blog.csdn.net/qq_15238647/article/details/81539287 关于ajax请求spring后台出现 Required String par ...

  10. shell整数与小数比较,小数之间比较的方法【转】

    在shell脚本中,无法对浮点数进行比较,如: max=0.1 min=0.01 if [ "$max" -gt "$min" ] then echo &quo ...