/// <summary> /// Issue select statements.Get the first data /// セレクトSQL文発行 /// </summary> /// <typeparam name="T"></typeparam> /// <returns></returns> public T GetDataFirst <T>() { try { DataTable dataTable = new DataTable(); this.CreateSelectSql(); SqliteDatabase sqliteDataBase = new SqliteDatabase(CONNECT_TABLE); Debug.Log(ExecutetSql.ToString()); dataTable = sqliteDataBase.ExecuteQuery(this.ExecutetSql.ToString()); if (dataTable.Rows.Count.Equals(0)) { return(default(T)); } T data = (T)Activator.CreateInstance(typeof(T), new object[] { }); DataBinding <T> .DataRowToObject(dataTable.Rows[0], data); return(data); } catch (SqliteException ex) { Debug.LogError(ex.Message + " " + this.ExecutetSql.ToString()); } finally { this.Init(this.BaseType); } return(default(T)); }
/// <summary> /// Select SQL statement generation /// セレクトSQL文生成 /// </summary> private void CreateSelectSql() { this.ExecutetSql = new StringBuilder(); DataAccessAttribute attribute = this.GetDataAccessAttribute <DataAccessAttribute>(this.BaseType); ExecutetSql.AppendLine(string.Format(SELECT_SQL, this.CreateSelectColumn(), attribute.TableName)); ExecutetSql.AppendLine(this.JoinSql.ToString()); ExecutetSql.AppendLine(this.WhereSql.ToString()); if (!this.OrderByColumns.Length.Equals(0)) { ExecutetSql.AppendLine(string.Format(ORDER_BY_SQL, string.Join(",", this.OrderByColumns))); } Debug.Log(this.ExecutetSql.ToString()); }