1. 程式人生 > >使用C#語言建立本地資料庫

使用C#語言建立本地資料庫

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