unity读取Sqlite数据库
using UnityEngine;
using System.Collections;
using Mono.Data.Sqlite;
using System.Data; public enum DataBaseMessage //用来存放数据库的异常信息
{
Normal = , //正常
AddDataExist, //添加的数据已经存在
PrimaryKeyNoExist, //主键不存在
}
//用来对数据库的操作
public class DataBaseManager //对数据库的操作,封装成单例模式
{
public static DataBaseManager GetInstanic
{
get
{
if (Instatinc == null)
Instatinc = new DataBaseManager();
return Instatinc;
}
}
private DataBaseManager() //构造函数
{
SQLConn = new SqliteConnection(SQL_Path); //创建数据连接
SQLComm = SQLConn.CreateCommand(); //创建对应的数据库指令
} public void Open_DB() //打开数据库
{
if (SQLConn.State == ConnectionState.Closed) //判断当前数据库连接的状态是否在关闭状态
{
SQLConn.Open(); //如果当前的数据库连接状态为关闭状态,就开启当前状态
}
} public void Close_DB() //关闭数据库
{
SQLConn.Close(); //关闭数据库的时候,不需要判断当前的数据库状态,直接关闭即可 } public DataBaseMessage Add_Data(string Table, string ColumnName, string data) //往数据库里面添加数据
{
string comm = "Insert Into " + Table + "( "+ ColumnName +" ) Values ( '" + data +"')";
SQLComm.CommandText = comm; //执行的数据库指令
try
{
SQLComm.ExecuteNonQuery(); //执行SQL指令
}
catch(System.Exception e) //用来抛出异常信息
{
string str = "column " + ColumnName +" is not unique"; //数据库异常信息: 该列的值不能重复,但是尝试插入重复的值
if (str == ExceptionMessage(e.Message, "\n"))
{
return DataBaseMessage.AddDataExist; //如果已经存在了,就返回存在的信息
}
}
return DataBaseMessage.Normal;
} public DataBaseMessage Add_Data(string Table, string ColumnName, string PrimaryKey, string PrimaryKeyValue, string data)
{
//添加到不是主键的里面
//Update PlayCount set Pass = 25 Where User = '1'
string comm = "Update "+ Table +" set " +ColumnName+" = '" + data +"' Where " + PrimaryKey+ "= '"+ PrimaryKeyValue +"'";
SQLComm.CommandText = comm; //执行的数据库指令
if(SQLComm.ExecuteNonQuery() == ) //执行SQL指令
{
return DataBaseMessage.PrimaryKeyNoExist; //如果执行指令的影响行数是零,说明没有此行,既没有对应的PrimaryKeyValue
}
return DataBaseMessage.Normal;
} public bool Select_Data(string Table, string ColumnName, string PrimaryKey, string PrimaryKeyValue, string data)
{
//判断某一特定的行,对应的某一列上面的值是否存在
string comm = "Select " +ColumnName +" From " + Table +" Where " + PrimaryKey +" = '" + PrimaryKeyValue +"'"; //只有一行
SQLComm.Cancel(); //先取消命令,在不取消命令的情况下,不能重新设置命令
SQLComm.CommandText = comm;
Read = SQLComm.ExecuteReader(); //执行命令
if(Read.GetValue().ToString() == data) //判断是否相等,如果相等就返回真
{
Read.Close();
return true;
}
Read.Close();
return false; //不存在 } public bool Select_Data(string Table, string ColumnName, string data) //判断某一行是否存在该数据
{
string comm = "Select " + ColumnName +" From " + Table; //查询某一列的值
SQLComm.Cancel();
SQLComm.CommandText = comm;
Read = SQLComm.ExecuteReader();
while (Read.Read())
{
if (Read.GetValue().ToString() == data)
{
Read.Close();
return true; //如果存在就返回真
}
}
Read.Close();
return false;
} public string Get_Data(string Table, string ColumnName, string PrimaryKey, string PrimaryKeyValue)
{ //取出数据库里面某一个表,某一列,某一行的值
string comm = "Select " + ColumnName + " From " + Table + " Where " + PrimaryKey + " = '" + PrimaryKeyValue + "'"; //只有一行
SQLComm.Cancel(); //先取消命令,在不取消命令的情况下,不能重新设置命令
SQLComm.CommandText = comm;
Read = SQLComm.ExecuteReader(); //执行命令
string data = Read.GetValue().ToString();
Read.Close();
return data;
} private string ExceptionMessage(string ExcMessage, params string[] s) //分割异常信息
{
string[] str = ExcMessage.Split(s, System.StringSplitOptions.RemoveEmptyEntries);
return str[str.Length - ].ToString();
}
private static DataBaseManager Instatinc;
private SqliteConnection SQLConn; //创建数据库连接对象
private SqliteCommand SQLComm; //创建数据库指令对象
private SqliteDataReader Read; //创建数据库连接读取对象
private string SQL_Path = "Data Source = " +Application.dataPath + "/_MyProject/Plugins/Demo_Defense_DB"; //数据库路径 }
unity读取Sqlite数据库的更多相关文章
- 使用安卓读取sqlite数据库方法记录
最近要实现android读取sqlite数据库文件,在这里先做一个英汉字典的例子.主要是输入英语到数据库中查询相应的汉语意思,将其答案输出.数据库采用sqlite3. 如图: 实现过程完全是按照参考文 ...
- php读取sqlite数据库入门实例
php读取sqlite数据库的例子,php编程中操作sqlite入门实例.原文参考:http://www.jbxue.com/article/php/22383.html在使用SQLite前,要确保p ...
- [CSharpTips]C#读取SQLite数据库中文乱码
C#读取SQLite数据库中文乱码 C#在读取C++写入数据的Sqlite数据库中的Text内容时,会出现乱码,因为C++默认编码格式为GB2312,而Sqlite编码格式为UTF-8,存入时不统一就 ...
- android直接读取项目中的sqlite数据库
最近项目中要实现android读取sqlite数据库文件,在这里先做一个英汉字典的例子.主要是输入英语到数据库中查询相应的汉语意思,将其答案输出.数据库采用sqlite3. 如图: 实现过程完全是按照 ...
- 14 SQLite数据库
SQLite数据库SQLite 是一款轻型的数据库SQLite 的设计目标是嵌入式的SQLite 占用资源低SQL 指结构化查询语言SQL 使我们有能力访问数据库SQL 是一种 ANSI 的标准计算机 ...
- Android使用SQLite数据库(4)
读取SQLite数据库中的字符串字段,使用Cursor的getString方法(其他类型的字段也有相应的读取方法): public abstract String getString (int col ...
- Unity&Sqlite数据库
Sqlite是一个跨平台关系型小型数据库,非常便利,适合于嵌入式设备:对于Sqlite数据库来说,这个数据库是以文件的形成存在的(比如data.db):数据库是由表组成的,在一个数据库里面可以存储多个 ...
- SQLite数据库如何存储和读取二进制数据
SQLite数据库如何存储和读取二进制数据 1. 存储二进制数据 SQLite提供的绑定二进制参数接口函数为: int sqlite3_bind_blob(sqlite3_stmt*, int, co ...
- 在IOS中使用DES算法对Sqlite数据库进行内容加密存储并读取解密
在IOS中使用DES算法对Sqlite 数据库进行内容加密存储并读取解密 涉及知识点: 1.DES加密算法: 2.OC对Sqlite数据库的读写: 3.IOS APP文件存储的两种方式及读取方式. 以 ...
随机推荐
- 【收藏】十大Webserver漏洞扫描工具
如今有很多消息令我们感到Web的危急性,因此,当前怎样构建一个安全的Web环境成为网管员和安全管理员们义不容辞的责任.可是巧妇难为无米之炊,该选择哪些安全工具呢? 扫描程序能够在帮助造我们造就安全的W ...
- UILabel头文件常见属性
text : default is nil 文本属性,默认值是 nil @property(nullable, nonatomic,copy) NSString *text; font : defau ...
- char varchar varchar2 的区别 (转)
char varchar varchar2 的区别 http://blog.csdn.net/honglei_zh/article/details/7172538区别:1.CHAR的长度是 ...
- hdu1251统计难题
Problem Description Ignatius最近遇到一个难题,老师交给他很多单词(只有小写字母组成,不会有重复的单词出现),现在老师要他统计出以某个字符串为前缀的单词数量(单词本身也是自己 ...
- Spring-----3、Spring的核心机制(依赖注入)
转载自:http://blog.csdn.net/hekewangzi/article/details/41345237
- 【衡阳八中noip模拟题】国色天香
庭前芍药妖无格,池上芙蕖净少情.唯有牡丹真国色,花开时节动京城.——唐·刘禹锡<赏牡丹>芍药花再红终究妖艳无格.终不及牡丹,国色天香.——乌拉那拉氏宜修华妃总是想要用自己的气焰打压皇后,正 ...
- AutoCompleteTextView 和 TextWatcher 详解
TextWatcher 监测Edittext内容的变化------------------------------------------------------------------------- ...
- CPrimer Plus第12章 存储类、链接和内存管理随笔
被static修饰的属于内部链接,不可被外部程序文件所使用一般而言,全局变量(文件作用域变量)具有静态存储期,局部变量(代码块作用域变量)具有自动存储期寄存器变量不能使用地址运算符因为被static修 ...
- GitBook整理
GitBook整理 ECMAScript 6 -- 中文文档 Apache 2.2 --中文官方文档 Redux --React配套架构 英文 express --Node.js 服务端框架 Hexo ...
- linux----LAMP之编译安装apache
第一步:解决依赖.安装apr.apr-util. apr-1.5.4.tar.gz下载地址:http://yunpan.cn/cFBzgsC3rDcyR 访问密码 4c82 apr-util-1.5 ...