使用C#語言建立本地資料庫
阿新 • • 發佈:2019-02-18
usingUnityEngine; usingSystem; usingSystem.Collections; usingMono.Data.Sqlite; publicclassDbAccess { privateSqliteConnectiondbConnection; privateSqliteCommanddbCommand; privateSqliteDataReaderreader; publicDbAccess(stringconnectionString) { OpenDB(connectionString); } publicDbAccess() { } publicvoidOpenDB(stringconnectionString) { try { dbConnection=newSqliteConnection(connectionString); dbConnection.Open(); Debug.Log("Connected to db"); } catch(Exceptione) { stringtemp1=e.ToString(); Debug.Log(temp1); } } publicvoidCloseSqlConnection() { 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."); } publicSqliteDataReaderExecuteQuery(stringsqlQuery) { dbCommand=dbConnection.CreateCommand(); dbCommand.CommandText=sqlQuery; reader=dbCommand.ExecuteReader(); returnreader; } publicSqliteDataReaderReadFullTable(stringtableName) { stringquery="SELECT * FROM "+tableName; returnExecuteQuery(query); } publicSqliteDataReaderInsertInto(stringtableName,string[]values) { stringquery="INSERT INTO "+tableName+" VALUES ("+values[0]; for(inti=1;i<values.Length;++i){ query+=", "+values[i]; } query+=")"; returnExecuteQuery(query); } publicSqliteDataReaderUpdateInto(stringtableName,string[]cols,string[]colsvalues,stringselectkey,stringselectvalue) { stringquery="UPDATE "+tableName+" SET "+cols[0]+" = "+colsvalues[0]; for(inti=1;i<colsvalues.Length;++i){ query+=", "+cols[i]+" ="+colsvalues[i]; } query+=" WHERE "+selectkey+" = "+selectvalue+" "; returnExecuteQuery(query); } publicSqliteDataReaderDelete(stringtableName,string[]cols,string[]colsvalues) { stringquery="DELETE FROM "+tableName+" WHERE "+cols[0]+" = "+colsvalues[0]; for(inti=1;i<colsvalues.Length;++i){ query+=" or "+cols[i]+" = "+colsvalues[i]; } Debug.Log(query); returnExecuteQuery(query); } publicSqliteDataReaderInsertIntoSpecific(stringtableName,string[]cols,string[]values) { if(cols.Length!=values.Length){ thrownewSqliteException("columns.Length != values.Length"); } stringquery="INSERT INTO "+tableName+"("+cols[0]; for(inti=1;i<cols.Length;++i){ query+=", "+cols[i]; } query+=") VALUES ("+values[0]; for(inti=1;i<values.Length;++i){ query+=", "+values[i]; } query+=")"; returnExecuteQuery(query); } publicSqliteDataReaderDeleteContents(stringtableName) { stringquery="DELETE FROM "+tableName; returnExecuteQuery(query); } publicSqliteDataReaderCreateTable(stringname,string[]col,string[]colType) { if(col.Length!=colType.Length){ thrownewSqliteException("columns.Length != colType.Length"); } stringquery="CREATE TABLE "+name+" ("+col[0]+" "+colType[0]; for(inti=1;i<col.Length;++i){ query+=", "+col[i]+" "+colType[i]; } query+=")"; returnExecuteQuery(query); } publicSqliteDataReaderSelectWhere(stringtableName,string[]items,string[]col,string[]operation,string[]values) { if(col.Length!=operation.Length¦¦operation.Length!=values.Length){ thrownewSqliteException("col.Length != operation.Length != values.Length"); } stringquery="SELECT "+items[0]; for(inti=1;i<items.Length;++i){ query+=", "+items[i]; } query+=" FROM "+tableName+" WHERE "+col[0]+operation[0]+"'"+values[0]+"' "; for(inti=1;i<col.Length;++i){ query+=" AND "+col[i]+operation[i]+"'"+values[0]+"' "; } returnExecuteQuery(query); } }