SQLite

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);

}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容