Example #1
0
    /// <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));
    }
Example #2
0
    /// <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());
    }