使用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. 【Java】SpringBoot-Ajax-Json:Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported for @RequestBody XXX

    1.重新组装数据 var params=JSON.stringify({"userword":XXXXX,"password":"XXXXX" ...

  2. wordpress调用文章摘要,若无摘要则自动截取文章内容字数做为摘要

    以下是调用指定分类文章列表的一个方法,作者如果有填写文章摘要则直接调用摘要:如果文章摘要忘记写了则自动截取文章内容字数做为摘要.这个方法也适用于调用description标签 <ul> & ...

  3. File upload - MIME type

    Your goal is to hack this photo galery by uploading PHP code.Retrieve the validation password in the ...

  4. 强大的接口调试工具-Postman图文详解

    前言 在前后端分离开发时,后端工作人员完成系统接口开发后,需要与前端人员对接,测试调试接口,验证接口的正确性可用性.而这要求前端开发进度和后端进度保持基本一致,任何一方的进度跟不上,都无法及时完成功能 ...

  5. BZOJ 5306: [Haoi2018]染色 二项式反演+NTT

    给定长度为 $n$ 的序列, 每个位置都可以被染成 $m$ 种颜色中的某一种. 如果恰好出现了 $s$ 次的颜色有 $k$ 种, 则会产生 $w_{k}$ 的价值. 求对于所有可能的染色方案,获得价值 ...

  6. Pandas模块 -- 实操练习

    如果对序列进行数学函数的运算,首选numpy模块: 如果对序列做统计运算,首选序列的“方法”,因为序列的“方法”更加丰富,如计算序列的偏度.峰度等,而Numpy模块是没有这样的函数. 手工构造数据框D ...

  7. Singer 修改tap-s3-csv 支持minio 连接

    singer 团队官方处了一个tap-s3-csv 的tap,对于没有使用aws 的人来说并不是很方便了,所以简单修改了 下源码,可以支持通用的s3 csv 文件的处理,同时发布到了官方pip 仓库中 ...

  8. MySQL InnoDB 群集–在Windows上设置InnoDB群集

    InnoDB集群最需要的功能之一是Windows支持,我们现在已将其作为InnoDB Cluster 5.7.17预览版 2的一部分提供.此博客文章将向您展示如何在MS Windows 10上运行In ...

  9. codevs 2803 爱丽丝·玛格特罗依德

    二次联通门 : codevs 2803 爱丽丝·玛格特罗依德 /* codevs 2803 爱丽丝·玛格特罗伊德 高精 + 找规律 显然, 能拆3就多拆3 不能拆就拆2 注意特判一下 */ #incl ...

  10. 机器学习之决策树原理和sklearn实践

    1. 场景描述 时间:早上八点,地点:婚介所 '闺女,我有给你找了个合适的对象,今天要不要见一面?' '多大?' '26岁' '长的帅吗?' '还可以,不算太帅' '工资高吗?' '略高于平均水平' ...