使用Unity操做SQLite,須要用到三個庫文件,分別是Mono.Data.Sqlite.dll和System.Data.dll和Sqlite3.dll,前兩個庫文件能夠在unity中找到,具體步驟:先找到unity安裝位置,具體路徑以下html
(許多人都推薦去2.0目錄中找,我用的是4.5,由於2.0會報錯),Sqlite3.dll能夠去官網下載sql
配置好環境就能夠對數據庫進行操做了數據庫
這是一些經常使用操做yii
using UnityEngine; using Mono.Data.Sqlite; using System; ///<summary> ///數據庫輔助類 ///</summary> public class SQLiteHelp { private SqliteConnection dbConnection; private SqliteCommand dbCommand; private SqliteDataReader dbReader; public SQLiteHelp(string conStr) { OpenSQLite(conStr); } //打開數據庫 public void OpenSQLite(string conStr) { try { dbConnection = new SqliteConnection(conStr); dbConnection.Open(); Debug.Log("Connect successful!"); } catch (Exception ex) { Debug.Log(ex.Message); } } //建立表 public SqliteDataReader CreateTable(string tabName, string[] col, string[] colType) { if (col.Length != colType.Length) { throw new SqliteException("columns.Length != colType.Length"); } string query = "CREATE TABLE " + tabName + " (" + col[0] + " " + colType[0]; for (int i = 1; i < col.Length; ++i) { query += ", " + col[i] + " " + colType[i]; } query += ")"; return ExecuteQuery(query); } //鏈接數據庫 public void CloseSqlConnection() { if (dbCommand != null) { dbCommand.Dispose(); } dbCommand = null; if (dbReader != null) { dbReader.Dispose(); } dbReader = null; if (dbConnection != null) { dbConnection.Close(); } dbConnection = null; Debug.Log("Disconnected from db."); } //執行sqlQuery操做 public SqliteDataReader ExecuteQuery(string sqlQuery) { dbCommand = dbConnection.CreateCommand(); dbCommand.CommandText = sqlQuery; dbReader = dbCommand.ExecuteReader(); return dbReader; } //插入數據 public SqliteDataReader InsertInto(string tableName, string[] values) { string query = "INSERT INTO " + tableName + " VALUES (" + values[0]; for (int i = 1; i < values.Length; ++i) { query += ", " + values[i]; } query += ")"; return ExecuteQuery(query); } //查找表中全部數據 public SqliteDataReader ReadFullTable(string tableName) { string query = "SELECT * FROM " + tableName; return ExecuteQuery(query); } //查找表中指定數據 public SqliteDataReader ReadSpecificData(string tableName, string selectkey, string selectvalue) { string query = "SELECT * FROM " + tableName + " where " + selectkey + " = " + selectvalue + " "; return ExecuteQuery(query); } //更新數據 SQL語法:UPDATE table_name SET column1 = value1, column2 = value2....columnN = valueN[WHERE CONDITION]; public SqliteDataReader UpdateInto(string tableName, string[] cols, string[] colsvalues, string selectkey, string selectvalue) { string query = "UPDATE " + tableName + " SET " + cols[0] + " = " + colsvalues[0]; for (int i = 1; i < colsvalues.Length; ++i) { query += ", " + cols[i] + " =" + colsvalues[i]; } query += " WHERE " + selectkey + " = " + selectvalue + " "; return ExecuteQuery(query); } //刪除表中的內容 DELETE FROM table_name WHERE {CONDITION or CONDITION}(刪除全部符合條件的內容) public SqliteDataReader Delete(string tableName, string[] cols, string[] colsvalues) { string query = "DELETE FROM " + tableName + " WHERE " + cols[0] + " = " + colsvalues[0]; for (int i = 1; i < colsvalues.Length; ++i) { query += " or " + cols[i] + " = " + colsvalues[i]; } return ExecuteQuery(query); } //插入指定的數據 public SqliteDataReader InsertIntoSpecific(string tableName, string[] cols, string[] values) { if (cols.Length != values.Length) { throw new SqliteException("columns.Length != values.Length"); } string query = "INSERT INTO " + tableName + "(" + cols[0]; for (int i = 1; i < cols.Length; ++i) { query += ", " + cols[i]; } query += ") VALUES (" + values[0]; for (int i = 1; i < values.Length; ++i) { query += ", " + values[i]; } query += ")"; return ExecuteQuery(query); } //判斷在指定列名中是否存在輸入的值 public bool ExitItem(string tableName,string itemName,string itemValue) { bool flag = false; dbReader = ReadFullTable(tableName); while (dbReader.Read()) { for(int i=0; i<dbReader.FieldCount; i++) { if(dbReader.GetName(i) == itemName) { if(dbReader.GetValue(i).ToString() == itemValue) { flag = true; break; } } } } return flag; } }
若是不清楚SQLite基本操做,能夠訪問:https://www.yiibai.com/sqlite/date-and-time.htmlide