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)); }
/// <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)); }
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()); }