Пример #1
0
        /// <summary>
        ///   DBTableのQuery結果をNDJsonで取り出す。
        /// </summary>
        /// <remarks>
        ///   <para>
        ///     得られるJSONは、{"columns":["カラム1","カラム2",...],
        ///     "list":[["値1-1","値1-2",...],["値2-1","値2-2",...],...]} という形式になります。
        ///   </para>
        /// </remarks>
        /// <param name="tbl">対象DBTable</param>
        /// <param name="limit">最大取り出し件数。0の場合無制限</param>
        /// <param name="offset">何件目以降を返すか。先頭レコードは0</param>
        public static NDJson GetJson(this DBTable tbl, int limit = 0, int offset = 0)
        {
            NDJson json = new NDJson("columns", tbl.Columns);
            NDJson list = new NDJson();

            using (DBReader reader = tbl.Query(limit, offset)) {
                string[] item;
                while ((item = reader.Get()) != null)
                {
                    list.Add(new NDJson(item));
                }
            }
            json.Set("list", list);
            return(json);
        }
Пример #2
0
    public static int Main(string[] args)
    {
        IniFile conf = new IniFile("Example.ini");

        DBCon.UseConsoleLog = true;
        DBTableDef.LoadAll("tabledef");

        using (DBCon db = new DBCon(conf)) {
            DBTable tbl = new DBTable(db, "サンプルテーブル");
            tbl.SetColumns("名前", "電話番号");

            // 結果を1件だけ抽出する
            DataArray rec = tbl.GetRecordData("ID", 1);

            // 上記は以下のコードと同じ動作をする
            // tbl.SetCondition("ID", 1);
            // List<DataArray> recs = tbl.GetData(1);
            // DataArray rec;
            // if(recs.Count > 0)
            //     rec = recs[0];
            // else
            //     rec = null;

            Console.WriteLine("なまえ:{0}、でんわ:{1}", rec["名前"], rec["電話番号"]);

            // 該当件数だけを獲得する
            tbl.SetCondition(DBCondition.Code.GreaterOrEqual, "ID", 100);
            int n = tbl.GetCount();
            Console.WriteLine("該当件数は{0}", n);

            // 該当件数が巨大であることが見込まれる場合の処理方法
            tbl.SetCondition(DBCondition.Code.GreaterThan, "ID", 0);
            using (DBReader reader = tbl.Query(0, 0)) {
                string[] val;
                while ((val = reader.Get()) != null)
                {
                    rec = new DataArray(tbl.Columns, val);
                    Console.WriteLine("なまえ:{0}、でんわ:{1}", rec["名前"], rec["電話番号"]);
                }
            }
        }

        return(0);
    }