示例#1
0
        public virtual JToken page2(string table, string primaryKey, string fields, int pageSize, int pageIndex, string where = "", string sort = "")
        {
            ConfigReader cr       = new ConfigReader();
            var          database = cr.module(string.Format("database.{0}", table));
            //加载结构
            var table_fields = database.SelectToken("fields");
            var fields_arr   = fields.Split(',').ToList();
            var field_sels   = (from f in fields_arr
                                join tf in table_fields
                                on f equals tf["name"].ToString()
                                select tf).ToArray();

            //选择所有字段
            if (fields.Trim() == "*")
            {
                field_sels = table_fields.ToArray();
                fields_arr = (from f in field_sels
                              select f["name"].ToString()).ToList();
                fields = string.Join(",", fields_arr.ToArray());
            }

            DbHelper db  = new DbHelper();
            var      cmd = db.GetCommandStored("spPager");

            db.AddString(ref cmd, "@table", table, 200);
            db.AddString(ref cmd, "@primarykey", primaryKey, 50);
            db.AddInInt32(cmd, "@pagesize", pageSize);
            db.AddInInt32(cmd, "@pageindex", pageIndex);
            db.AddBool(ref cmd, "@docount", false);
            db.AddString(ref cmd, "@where", where, 1000);
            db.AddString(ref cmd, "@sort", sort, 50);
            db.AddString(ref cmd, "@fields", fields, 500);
            var          r   = db.ExecuteReader(cmd);
            JArray       a   = new JArray();
            SqlCmdReader scr = new SqlCmdReader();

            while (r.Read())
            {
                int index = 1;//从1开始,0是行号
                var o     = new JObject();
                foreach (var field in fields_arr)
                {
                    var fd      = field_sels[index - 1];
                    var fd_type = fd["type"].ToString().ToLower();

                    o[field] = scr[fd_type](r, index++);
                }
                a.Add(o);
            }
            r.Close();
            return(JToken.FromObject(a));
        }
示例#2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="table"></param>
        /// <param name="primaryKey"></param>
        /// <param name="where">name=1</param>
        /// <returns></returns>
        public virtual int count(string table, string primaryKey, string where = "")
        {
            DbHelper db  = new DbHelper();
            var      cmd = db.GetCommandStored("spPager");

            db.AddString(ref cmd, "@table", table, 50);
            db.AddString(ref cmd, "@primarykey", primaryKey, 50);
            db.AddInInt32(cmd, "@pagesize", 0);
            db.AddInInt32(cmd, "@pageindex", 0);
            db.AddBool(ref cmd, "@docount", true);
            db.AddString(ref cmd, "@where", where, 1000);
            db.AddString(ref cmd, "@sort", string.Empty, 50);
            db.AddString(ref cmd, "@fields", string.Empty, 100);
            var obj = db.ExecuteScalar(cmd);

            return(Convert.ToInt32(obj));
        }
示例#3
0
        public static string GetFolderData(int fid, ref FolderInf root)
        {
            StringBuilder sb = new StringBuilder();

            sb.Append("select ");
            sb.Append("xf.fd_name");
            sb.Append(",xf.fd_length");
            sb.Append(",xf.fd_size");
            sb.Append(",xf.fd_pid");
            sb.Append(",xf.fd_pathLoc");
            sb.Append(",xf.fd_pathSvr");
            sb.Append(",xf.fd_folders");
            sb.Append(",xf.fd_files");
            sb.Append(",xf.fd_filesComplete");
            sb.Append(" from down_folders as df");
            sb.Append(" left join xdb_files as xf");
            sb.Append(" on xf.fd_id = df.fd_id");
            sb.Append(" where df.fd_id=@fd_id and xf.fd_complete=1;");

            DbHelper  db  = new DbHelper();
            DbCommand cmd = db.GetCommand(sb.ToString());

            db.AddInInt32(cmd, "@fd_id", fid);
            DbDataReader r = db.ExecuteReader(cmd);

            //FolderInf root = new FolderInf();
            if (r.Read())
            {
                root.m_name        = r.GetString(0);
                root.m_lenLoc      = r.GetInt64(1);
                root.m_size        = r.GetString(2);
                root.m_pidSvr      = r.GetInt32(3);
                root.m_idSvr       = fid;
                root.m_pathLoc     = r.GetString(4);
                root.m_pathSvr     = r.GetString(5);
                root.foldersCount  = r.GetInt32(6);
                root.filesCount    = r.GetInt32(7);
                root.filesComplete = r.GetInt32(8);
            }
            r.Close();

            //单独取已上传长度
            root.lenSvr = DBFolder.GetLenPosted(fid);

            //取文件信息
            JArray        files = new JArray();
            List <string> ids   = new List <string>();

            DBFile.GetCompletes(fid, ref files, ref ids);

            JObject obj = (JObject)JToken.FromObject(root);

            obj["files"]  = files;
            obj["length"] = root.m_lenLoc;
            obj["ids"]    = string.Join(",", ids.ToArray());
            return(obj.ToString());
        }