【Unity】封装SQLite管理类
发表于2017-08-04
本篇文章给大家介绍下封装SQLite管理类的使用。
代码如下:
using UnityEngine;
using System.Collections;
using Mono.Data.Sqlite;
using System.Data.SqlClient;
public class SQLiteManager
{
private SqliteConnection con;
private SqliteCommand command;
// 构造函数重载
public SQLiteManager (string dataBasePath)
{
// 链接数据库
con = new SqliteConnection (dataBasePath);
// 打开数据库
con.Open ();
// 实例化命令
command = con.CreateCommand ();
}
// 增--方式1
// insert into 表名 values(值1,值2...)
public SqliteDataReader InsertData (string tableName, object[] values)
{
command.CommandText = "insert into " tableName " values (" values [0];
for (int i = 1; i < values.Length; i ) {
command.CommandText = "," values [i];
}
command.CommandText = ")";
return command.ExecuteReader ();
}
// 增--方式2
public SqliteDataReader InsertData (string tableName, string[] cols, object[] values)
{
if (values.Length != cols.Length) {
Debug.Log ("参数个数与列数不匹配,无法进行数据的写入!");
return null;
}
// insert into 表名(列0,列1) values(值1,值2)
// into后面有空格!!!
command.CommandText = "insert into " tableName "(" cols [0];
// 把每个列的名字,都加入到 表名(列0,列1
for (int i = 1; i < cols.Length; i ) {
command.CommandText = "," cols [i];
}
command.CommandText = ")";
command.CommandText = " values(" values [0];
for (int i = 1; i < values.Length; i ) {
command.CommandText = "," values [i];
}
command.CommandText = ")";
return command.ExecuteReader ();
}
//-----------------------------------------
// 删
public SqliteDataReader DeleteData (string tableName)
{
// 清空当前表中所有的内容
command.CommandText = "delete from " tableName;
return command.ExecuteReader ();
}
// 删除满足条件的指定数据
public SqliteDataReader DeleteData (string tableName, string condition)
{
command.CommandText = "delete from " tableName " where " condition;
return command.ExecuteReader ();
}
//-----------------------------------------
// 改
public SqliteDataReader UpdateData (string tableName, string[] cols, object[] values, string condition)
{
if (values.Length != cols.Length) {
Debug.Log ("输入的值的个数有误!");
return null;
}
command.CommandText = "update " tableName " set " cols [0] "=" values [0];
for (int i = 1; i < cols.Length; i ) {
command.CommandText = "," cols [i] "=" values [i];
}
command.CommandText = " where " condition;
return command.ExecuteReader ();
}
//-----------------------------------------
// 查
// string condition = null:设置参数的默认值为null
// 调用该方法的时候,可以选择传递3个参数,或者2个参数,如果传递2个参数,第三个参数的值将使用默认值
public SqliteDataReader SelectData (string tableName, string[] cols, string condition = null)
{
command.CommandText = "select " cols [0];
for (int i = 1; i < cols.Length; i ) {
command.CommandText = "," cols [i];
}
command.CommandText = " from " tableName;
if (condition != null) {
command.CommandText = " where " condition;
}
return command.ExecuteReader ();
}
//-----------------------------------------
// 关闭数据库
public void CloseDataBase ()
{
con.Close ();
command.Cancel ();
}
}
