SQLite

2017-05-25  本文已影响0人  FrozenSunset

usingSystem.Collections;

usingSystem.Collections.Generic;

usingUnityEngine;

usingMono.Data.Sqlite;

publicclassSQLiteHelpScript{

//定义数据库连接

SqliteConnectionconnection;

//定义SQL命令

SqliteCommandcommand;

//定义数据读取对象

SqliteDataReaderreader;

publicSQLiteHelpScript(stringdbPath){

#ifUNITY_EDITOR

stringconnectionString="DataSource="+dbPath;

#elifUNITY_ANDROID

string connectionString ="URL=file:"+ Application.persistentDataPath +"/PlayerData";

#endif

try{

//创建数据库连接

connection=newSqliteConnection(connectionString);

connection.Open();

}catch(SqliteExceptionex){

Debug.Log(ex);

}

}

//执行SQL命令

publicSqliteDataReaderExecuteQuery(stringqueryString){

command=connection.CreateCommand();

command.CommandText=queryString;

reader=command.ExecuteReader();

returnreader;

}

//关闭数据库连接

publicvoidCloseConnection(){

//销毁Command

if(command!=null){

command.Dispose();

}

command=null;

//销毁reader

if(reader!=null){

reader.Close();

}

reader=null;

//销毁connection

if(connection!=null){

connection.Dispose();

}

connection=null;

}

//读取整张表

publicSqliteDataReaderReadFullTable(stringtableName){

stringquery="SELECT*FROM"+tableName;

returnExecuteQuery(query);

}

//插入数据

publicSqliteDataReaderInsertValues(stringtableName,string[]values){

//获取数据表中的列数

intfieldCount=ReadFullTable(tableName).FieldCount;

//当前要插入的值的长度是否等于数据表中的列数

if(values.Length!=fieldCount){

//抛出异常

thrownewSqliteException("values.Length!=fieldCount");

}

stringqueryString="INSERTINTO"+tableName+"VALUES("+values[0];

for(inti=1;i

queryString+=","+values[i];

}

queryString+=")";

returnExecuteQuery(queryString);

}

publicSqliteDataReaderInsertValues(stringtableName,string[]colName,string[]values){

if(values.Length!=colName.Length){

thrownewSqliteException("values.Length!=colName.Length");

}

stringqueryString="INSERTINTO"+tableName+"("+colName[0];

for(inti=1;i

queryString+=","+colName[i];

}

queryString+=")"+"VALUES("+values[0];

for(inti=1;i

queryString+=","+values[i];

}

queryString+=")";

returnExecuteQuery(queryString);

}

//更新数据

publicSqliteDataReaderUpDateValues(stringtableName,string[]colName,string[]values,

stringkey,stringoperation,stringvalue){

//当列名的个数和值的个数不一致时抛出异常

if(colName.Length!=values.Length){

thrownewSqliteException("values.Length!=colName.Length");

}

stringqueryString="UPDATE"+tableName+"SET"+colName[0]+"="+values[0];

for(inti=1;i

queryString+=","+colName[i]+"="+values[i];

}

queryString+="WHERE"+key+operation+value;

returnExecuteQuery(queryString);

}

//删除数据

publicSqliteDataReaderDeleteValuesAnd(stringtableName,string[]colName,

string[]values,string[]operation){

if(colName.Length!=values.Length||colName.Length!=operation.Length||

values.Length!=operation.Length){

thrownewSqliteException("colName.Length!=values.Length!=operation.Length");

}

stringqueryString="DELETEFROM"+tableName+"WHERE"+colName[0]+operation[0]+values[0];

for(inti=1;i

queryString+="AND"+colName[i]+operation[i]+values[i];

}

returnExecuteQuery(queryString);

}

publicSqliteDataReaderDeleteValuesOr(stringtableName,string[]colName,string[]operation,

string[]values){

if(colName.Length!=values.Length||colName.Length!=operation.Length||

values.Length!=operation.Length){

thrownewSqliteException("colName.Length!=values.Length!=operation.Length");

}

stringqueryString="DELETEFROM"+tableName+"WHERE"+colName[0]+operation[0]+values[0];

for(inti=1;i

queryString+="OR"+colName[i]+operation[i]+values[i];

}

returnExecuteQuery(queryString);

}

//查找

publicSqliteDataReaderSelectTable(stringtableName,string[]colName,string[]values,

string[]operation,string[]keys){

if(keys.Length!=values.Length||keys.Length!=operation.Length||

values.Length!=operation.Length){

thrownewSqliteException("colName.Length!=values.Length!=operation.Length");

}

stringqueryString="SELECT"+colName[0];

for(inti=1;i

queryString+=","+colName[i];

}

queryString+="FROM"+tableName+"WHERE"+keys[0]+operation[0]+values[0];

for(intj=1;j

queryString+="AND"+keys[j]+operation[j]+values[j];

}

returnExecuteQuery(queryString);

}

//创建表

publicSqliteDataReaderCreatTable(stringtableName,string[]colName,string[]colTypes){

if(colName.Length!=colTypes.Length){

thrownewSqliteException("values.Length!=colName.Length");

}

stringqueryString="CREATETABLE"+tableName+"("+colName[0]+""+colTypes[0];

for(inti=1;i

queryString+=","+colName[i]+""+colTypes[i];

}

queryString+=")";

Debug.Log(queryString);

returnExecuteQuery(queryString);

}

}

上一篇下一篇

猜你喜欢

热点阅读