C#:在u3d中操作sqlite的数据库
Sqlite小巧,便携,方便,你不用安装其他软件,数据库文件可以用代码直接生成,适用于小型工程
using UnityEngine; using System; using System.Collections; using Mono.Data.Sqlite;public class DbAccess {private SqliteConnection dbConnection;private SqliteCommand dbCommand;private SqliteDataReader reader;public DbAccess (string connectionString){OpenDB (connectionString);}public DbAccess (){}public void OpenDB (string connectionString){try{dbConnection = new SqliteConnection (connectionString);dbConnection.Open ();Debug.Log ("Connected to db");}catch(Exception e){string temp1 = e.ToString();Debug.Log(temp1);}}public void CloseSqlConnection (){if (dbCommand != null) {dbCommand.Dispose ();}dbCommand = null;if (reader != null) {reader.Dispose ();}reader = null;if (dbConnection != null) {dbConnection.Close ();}dbConnection = null;Debug.Log ("Disconnected from db.");}public SqliteDataReader ExecuteQuery (string sqlQuery){dbCommand = dbConnection.CreateCommand ();dbCommand.CommandText = sqlQuery;reader = dbCommand.ExecuteReader ();return reader;}public SqliteDataReader ReadFullTable (string tableName){string query = "SELECT * FROM " + tableName;return ExecuteQuery (query);}public SqliteDataReader InsertInto (string tableName, string[] values){string query = "INSERT INTO " + tableName + " VALUES (" + values[0];for (int i = 1; i < values.Length; ++i) {query += ", " + values[i];}query += ")";return ExecuteQuery (query);}public SqliteDataReader UpdateInto (string tableName, string []cols,string []colsvalues,string selectkey,string selectvalue){string query = "UPDATE "+tableName+" SET "+cols[0]+" = "+colsvalues[0];for (int i = 1; i < colsvalues.Length; ++i) {query += ", " +cols[i]+" ="+ colsvalues[i];}query += " WHERE "+selectkey+" = "+selectvalue+" ";return ExecuteQuery (query);}/// <summary>/// 跟新某一个字段的值/// </summary>/// <param name="tableName"></param>/// <param name="cols"></param>/// <param name="colsvalues"></param>/// <param name="selectkey"></param>/// <param name="selectvalue"></param>/// <returns></returns>public SqliteDataReader UpdateIntoAllCols(string tableName, string col, string colsvalue){string query = "UPDATE " + tableName + " SET " + col + " = " + colsvalue ;//for (int i = 1; i < colsvalues.Length; ++i)//{// query += ", " + cols[i] + " =" + colsvalues[i];//}//query += " WHERE " + selectkey + " = " + selectvalue + " ";return ExecuteQuery(query);}public SqliteDataReader Delete(string tableName,string []cols,string []colsvalues){string query = "DELETE FROM "+tableName + " WHERE " +cols[0] +" = " + colsvalues[0];for (int i = 1; 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[0];for (int i = 1; i < cols.Length; ++i) {query += ", " + cols[i];}query += ") VALUES (" + values[0];for (int i = 1; i < values.Length; ++i) {query += ", " + values[i];}query += ")";return ExecuteQuery (query);}public SqliteDataReader DeleteContents (string tableName){string query = "DELETE FROM " + tableName;return ExecuteQuery (query);}public SqliteDataReader CreateTable (string name, string[] col, string[] colType){if (col.Length != colType.Length) {throw new SqliteException ("columns.Length != colType.Length");}string query = "CREATE TABLE " + name + " (" + col[0] + " " + colType[0];for (int i = 1; i < col.Length; ++i) {query += ", " + col[i] + " " + colType[i];}query += ")";return ExecuteQuery (query);}public SqliteDataReader SelectWhere (string tableName, string[] items, string[] col, string[] operation, string[] values){if (col.Length != operation.Length || operation.Length != values.Length) {throw new SqliteException ("col.Length != operation.Length != values.Length");}string query = "SELECT " + items[0];for (int i = 1; i < items.Length; ++i) {query += ", " + items[i];}query += " FROM " + tableName + " WHERE " + col[0] + operation[0] + "'" + values[0] + "' ";for (int i = 1; i < col.Length; ++i) {query += " AND " + col[i] + operation[i] + "'" + values[i] + "' ";}return ExecuteQuery (query);}}
需要用到的插件
插件均可以在unity安装包中找到
补充:在sqlite中text类型不同于string类型,更新添加字段的时候生成的数组加上单引号
string[] closValues = new string[] { "'"+"学号"+"'", "'"+"姓名"+"'", "'"+"班级"+"'", "'"+"年龄"+"'"};
转载于:https://www.cnblogs.com/zbyglls/p/10435571.html
C#:在u3d中操作sqlite的数据库相关推荐
- Swift 中使用 SQLite——打开数据库
关于Swift中使用SQLite,接下来可能会分别从打开.增.删.改.查,几个方面来介绍SQLite的具体使用,这一篇重点介绍一下如何打开. 定义全局数据库访问句柄 /// 全局数据库访问句柄 pri ...
- .NET中操作SQLite
C#操作SQLite Database C#下SQLite操作驱动dll下载:System.Data.SQLite C#使用SQLite步骤: (1)新建一个project (2)添加SQLite操作 ...
- Qt中操作SQLite数据库
0.前言 SQLite是一款开源.轻量级.跨平台的数据库,无需server,无需安装和管理配置.它的设计目标是嵌入式的,所以很适合小型应用,也是Qt应用开发种常用的一种数据库. 1.驱动 Qt SQL ...
- 在 Android 应用程序中使用 SQLite 数据库以及怎么用
part one : android SQLite 简单介绍 SQLite 介绍 SQLite 一个非常流行的嵌入式数据库.它支持 SQL 语言,而且仅仅利用非常少的内存就有非常好的性能.此外它还是开 ...
- python ——操作sqlite 数据库
活动地址:CSDN21天学习挑战赛 目录 一,什么是sqlite数据库 1.1 sqlite数据库的功能特性 2,python操作sqlite 2.1 python sqlite3 模块 2.2 创建 ...
- 【用SQLite做数据分析】Python操作SQLite的入门介绍
本篇推文共计2000个字,阅读时间约3分钟. Python 进行数据分析和数据挖掘是当前炙手可热的技术领域,如何高效地管理大量数据是其中非常关键的环节.数据库是最佳的解决方案之一,目前流行的数据库有 ...
- java中删除sqlite数据库语句_sqlite数据库的介绍与java操作sqlite的实例讲解
sqlite数据库的介绍与java操作sqlite的实例讲解 发布时间:2020-10-03 05:40:34 来源:脚本之家 阅读:92 作者:Lee_Tech sqlite是啥? 1.一种轻型数据 ...
- Android中实现SQLite数据库CRUD操作的两种方式
Android中实现SQLite数据库CRUD操作的两种方式 SQLite是一款轻量级的关系型数据库,具有运行速度.占用资源少的特点.通常只需要几百KB的内存就够了,因此特别适合在移动设备上使用.SQ ...
- Electron中使用sql.js操作SQLite数据库
推荐sql.js--一款纯js的sqlite工具. 一.关于sql.js sql.js(https://github.com/kripken/sql.js)通过使用Emscripten编译SQLite ...
- python通过什么连接数据库_python中常用的各种数据库操作模块和连接实例
这篇文章主要介绍了python中常用的各种数据库操作模块和连接实例,包括sqlite3.oracle.mysql.excel,需要的朋友可以参考下 工作中,经常会有用python访问各种数据库的需求, ...
最新文章
- 高校实验室管理系统_实验室信息管理系统(LIMS)全解
- python调用rust_在 Rust 代码中编写 Python 是种怎样的体验?
- python re正则查找_python正则表达式 - re
- origin2016中怎么画多条曲线,并且分别给不同曲线设置标记
- python list 实现原理,彻底理解Python list切片原理
- Java8 forEach 使用
- 为何手机可以用,电脑连接不上
- 八大排序算法的python实现(七)基数排序
- Windows Phone 7 异步编程模型
- Linux dstat监控工具简讲
- 通达信自带指标 均线多头排列(DTPL)
- Qt2D游戏开发引擎QtGameEngine使用入门10——游戏中如何响应用户输入(鼠标/键盘输入)
- 贴图技术入门——坦克大战地图
- python爬虫有趣的应用软件_Python学习,爬虫不一定非要抓数据,也可以做自己喜欢的应用程序...
- 网络编程 正则表达式
- [error]:无法打开要写入的文件 XXX。您可能没有写入权限。
- 微型计算机ccc认证依据,3C检测规定
- html5 中心点旋转,html5 canvas围绕中心点旋转
- c语言空格影响编译吗,C语言的空格问题
- BXA联手ONEROOT推出数字金融服务
热门文章
- kali文件重命名_硬核教程,必看!「网络安全入门」四、文件上传漏洞
- java 获取远程系统启动时间_从Java中的RuntimeMXBean获取系统启动时间
- dg修改归档目录 oracle_OracleDG主库丢失归档增量同步
- ImportError: cannot import name ‘activations‘ from ‘keras.layers‘
- 深度学习在图像语义分割中的应用
- 深度解密换脸应用Deepfake
- python数字图像处理(14):高级滤波
- 数据集中异常值的处理之lof,iforest算法
- 基于LSTM的【气象数据+发电数据】多步时序数据建模预测分析实战
- python实现Dijkstra算法求解图中最短路径距离