void OnGUI() { GUI.skin.button.fontSize = 64; if (GUILayout.Button("W")) { SQLite3Handle handle = new SQLite3Handle(Application.dataPath + "/StreamingAssets/Database/static.db"); Dictionary <int, Item> item = handle.SelectMultiT <Item>(); //foreach (KeyValuePair<int, Item> keyValuePair in item) //{ // Debug.LogError(keyValuePair.Value); //} } if (GUILayout.Button("R")) { } }
public static void Creator(ref TableData InTableData, string InDatabasePath) { string path = Application.dataPath + "/" + InDatabasePath; SQLite3Handle handle = new SQLite3Handle(path, SQLite3OpenFlags.Create | SQLite3OpenFlags.ReadWrite); StringBuilder sb = new StringBuilder(512); handle.Exec("DROP TABLE IF EXISTS " + InTableData.TableName); sb.Append("CREATE TABLE ") .Append(InTableData.TableName) .Append("("); int length = InTableData.ColumnName.Length; for (int i = 0; i < length; i++) { if (InTableData.IsColumnEnables[i]) { sb.Append(InTableData.ColumnName[i]) .Append(" ") .Append(InTableData.SQLite3Types[i]) .Append(GetConnstraint(InTableData.SQLite3Constraints[i])) .Append(", "); } } sb.Remove(sb.Length - 2, 2); sb.Append(")"); handle.Exec(sb.ToString()); if (null != InTableData.ExcelContents) { length = InTableData.ExcelContents.Length; int subLength; ICell cell; for (int i = 0; i < length; i++) { subLength = InTableData.ExcelContents[i].Length; sb.Remove(0, sb.Length); sb.Append("INSERT INTO ").Append(InTableData.TableName).Append(" VALUES("); for (int j = 0; j < subLength; j++) { if (InTableData.IsColumnEnables[j]) { cell = InTableData.ExcelContents[i][j]; switch (InTableData.SQLite3Types[j]) { case SQLite3ValueType.INTEGER: if (null == cell) { sb.Append(0); } else { switch (cell.CellType) { case CellType.Numeric: sb.Append((int)cell.NumericCellValue); break; case CellType.String: int result; sb.Append(int.TryParse(cell.StringCellValue, out result) ? result : 0); break; case CellType.Boolean: sb.Append(cell.BooleanCellValue ? 1 : 0); break; default: sb.Append(0); break; } } break; case SQLite3ValueType.REAL: if (null == cell) { sb.Append(0); } else { switch (cell.CellType) { case CellType.Numeric: sb.Append(cell.NumericCellValue); break; case CellType.String: double result; sb.Append(double.TryParse(cell.StringCellValue, out result) ? result : 0); break; case CellType.Boolean: sb.Append(cell.BooleanCellValue ? 1 : 0); break; default: sb.Append(0); break; } } break; default: if (null == cell) { sb.Append("''"); } else { switch (cell.CellType) { case CellType.Numeric: sb.Append("\'") .Append(cell.NumericCellValue) .Append("\'"); break; case CellType.String: sb.Append("\'") .Append(cell.StringCellValue.Replace("'", "''")) .Append("\'"); break; case CellType.Boolean: sb.Append("\'") .Append(cell.BooleanCellValue.ToString()) .Append("\'"); break; default: sb.Append("''"); break; } } break; } sb.Append(", "); } } sb.Remove(sb.Length - 2, 2); sb.Append(")"); handle.Exec(sb.ToString()); } } handle.CloseDB(); }
static void CreateDatabaseTable(string InName, ColumnParameter[] InColParameters, List <ICell[]> InCellData, string InDatabasePath) { SQLite3Handle handle = new SQLite3Handle(Application.dataPath + "/" + InDatabasePath, SQLite3OpenFlags.Create | SQLite3OpenFlags.ReadWrite); StringBuilder sb = new StringBuilder(512); handle.Exec("DROP TABLE IF EXISTS " + InName); sb.Append("CREATE TABLE ") .Append(InName) .Append("("); int length = InColParameters.Length; for (int i = 0; i < length; i++) { if (InColParameters[i].IsEnable) { sb.Append(InColParameters[i].Name) .Append(" ") .Append(InColParameters[i].Type) .Append(", "); } } sb.Remove(sb.Length - 2, 2); sb.Append(")"); handle.Exec(sb.ToString()); if (null != InCellData) { length = InCellData.Count; int length1 = InCellData[0].Length; ICell cell; for (int i = 0; i < length; i++) { sb.Remove(0, sb.Length); sb.Append("INSERT INTO ").Append(InName).Append(" VALUES("); for (int j = 0; j < length1; j++) { cell = InCellData[i][j]; switch (InColParameters[j].Type) { case ValueType.INTEGER: if (null == cell) { sb.Append(0); } else { switch (cell.CellType) { case CellType.Numeric: sb.Append((int)cell.NumericCellValue); break; case CellType.String: int result; sb.Append(int.TryParse(cell.StringCellValue, out result) ? result : 0); break; case CellType.Boolean: sb.Append(cell.BooleanCellValue ? 1 : 0); break; default: sb.Append(0); break; } } break; case ValueType.REAL: if (null == cell) { sb.Append(0); } else { switch (cell.CellType) { case CellType.Numeric: sb.Append(cell.NumericCellValue); break; case CellType.String: double result; sb.Append(double.TryParse(cell.StringCellValue, out result) ? result : 0); break; case CellType.Boolean: sb.Append(cell.BooleanCellValue ? 1 : 0); break; default: sb.Append(0); break; } } break; default: if (null == cell) { sb.Append("''"); } else { switch (cell.CellType) { case CellType.Numeric: sb.Append("\'") .Append(cell.NumericCellValue) .Append("\'"); break; case CellType.String: sb.Append("\'") .Append(cell.StringCellValue.Replace("'", "''")) .Append("\'"); break; case CellType.Boolean: sb.Append("\'") .Append(cell.BooleanCellValue.ToString()) .Append("\'"); break; default: sb.Append("''"); break; } } break; } sb.Append(", "); } sb.Remove(sb.Length - 2, 2); sb.Append(")"); //Debug.LogError(sb.ToString()); handle.Exec(sb.ToString()); } } handle.CloseDB(); }