public List<Topics> GetTopicList(int CurrentPage) { MainForm.srcDBH.ExecuteNonQuery( string.Format( "ALTER TABLE {0}posts CHANGE `istop` `istop` INT( 1 ) NOT NULL DEFAULT '0'", MainForm.cic.SrcDbTablePrefix) ); string sql; #region 分页语句 sql = string.Format( "SELECT * FROM {0}posts WHERE parentid = 0 ORDER BY Id LIMIT {1},{2}", MainForm.cic.SrcDbTablePrefix, MainForm.PageSize * (CurrentPage - 1), MainForm.PageSize ); #endregion System.Data.Common.DbDataReader dr = MainForm.srcDBH.ExecuteReader(sql); List<Topics> topiclist = new List<Topics>(); while (dr.Read()) { //TODO 彩色标题 Topics objTopic = new Topics(); objTopic.tid = Convert.ToInt32(dr["id"]); objTopic.fid = Convert.ToInt16(dr["db"]); //objTopic.iconid = dr[""] ; //如果转换主题分类,则转换此字段 if (MainForm.IsConvertTopicTypes) { //objTopic.typeid = Convert.ToInt32(dr["SubjectId"]);//将此字段事先更新为int } //objTopic.readperm = Convert.ToInt32(dr["Require"]); //objTopic.price = Convert.ToInt32(dr["Price"]) > Int16.MaxValue ? Int16.MaxValue : Convert.ToInt16(dr["Price"]);//数据库smallint最大只有3W多 objTopic.poster = dr["author"].ToString(); objTopic.posterid = Convert.ToInt32(dr["authorid"]); objTopic.title = dr["title"].ToString(); objTopic.postdatetime = Convert.ToDateTime(dr["postat"]); //objTopic.lastpost = dr["lastpostat"] == DBNull.Value ? DateTime.Now : Timestamp2Date(dr["lastpostat"].ToString()); if (MainForm.IsResetTopicLastpostid) { objTopic.lastpostid = 785200 + objTopic.tid; } else { objTopic.lastpostid = objTopic.tid; } objTopic.lastposter = dr["lastauthor"] == DBNull.Value ? "" : dr["lastauthor"].ToString(); objTopic.lastposterid = dr["lastauthorid"] == DBNull.Value ? 0 : Convert.ToInt32(dr["lastauthorid"]); objTopic.views = Convert.ToInt32(dr["viewnumber"]); objTopic.replies = Convert.ToInt32(dr["replynum"]); objTopic.displayorder = Convert.ToInt32(dr["istop"]) > 0 ? Convert.ToInt32(dr["istop"]) : 0; //if (Convert.ToBoolean(dr["Deleted"])) //{ // objTopic.displayorder = -1; //} objTopic.highlight = dr["color"] == DBNull.Value ? "" : "color:" + dr["color"].ToString() + ";"; if (dr["boldcode"] != DBNull.Value && Convert.ToInt32(dr["boldcode"]) > 0) { objTopic.highlight += "font-weight:bold;"; } objTopic.digest = Convert.ToByte(dr["jinghua"]); //objTopic.rate = dr[""] ; objTopic.hide = 1; //TODO objTopic.special = Convert.ToInt32(dr["vote"]) > 0 ? Byte.Parse("1") : Byte.Parse("0"); if (dr["accessaryname"] != DBNull.Value && dr["accessaryname"].ToString() != string.Empty) { objTopic.attachment = 1; } objTopic.closed = Convert.ToInt32(dr["titlelock"]); topiclist.Add(objTopic); } dr.Close(); dr.Dispose(); return topiclist; }
public List<Topics> GetTopicList(int CurrentPage) { string sql; #region 分页语句 if (CurrentPage <= 1) { sql = string.Format ("SELECT TOP {1} Id, Type, BoardId, SubjectId, IconId, Title, TitleColor, Body, AuthorId, AuthorName,IssueTime, Views, Replies, LastReplyId, LastReplyUID,LastReplyAuthor,LastReplyTime, UDTime, Require, Price, Topped, Elited, Locked, Deleted FROM {0}Topic ORDER BY Id", MainForm.srcDbTableProfix, MainForm.PageSize); } else { sql = string.Format ("SELECT TOP {1} Id, Type, BoardId, SubjectId, IconId, Title, TitleColor, Body, AuthorId, AuthorName,IssueTime, Views, Replies, LastReplyId, LastReplyUID,LastReplyAuthor,LastReplyTime, UDTime, Require, Price, Topped, Elited, Locked, Deleted FROM {0}Topic WHERE Id NOT IN (SELECT TOP {2} Id FROM {0}Topic) ORDER BY Id", MainForm.srcDbTableProfix, MainForm.PageSize, MainForm.PageSize * (CurrentPage - 1)); } #endregion System.Data.Common.DbDataReader dr = MainForm.srcDBH.ExecuteReader(sql); List<Topics> topiclist = new List<Topics>(); while (dr.Read()) { //TODO 彩色标题 Topics objTopic = new Topics(); objTopic.tid = Convert.ToInt32(dr["Id"]); objTopic.fid = Convert.ToInt16(dr["BoardId"]); //objTopic.iconid = dr[""] ; //如果转换主题分类,则转换此字段 if (MainForm.IsConvertTopicTypes) { objTopic.typeid = Convert.ToInt32(dr["SubjectId"]);//将此字段事先更新为int } objTopic.readperm = Convert.ToInt32(dr["Require"]); objTopic.price = Convert.ToInt16(dr["Price"]); objTopic.poster = dr["AuthorName"].ToString(); objTopic.posterid = Convert.ToInt32(dr["AuthorId"]); objTopic.title = dr["Title"].ToString(); objTopic.postdatetime = Convert.ToDateTime(dr["IssueTime"]); objTopic.lastpost = dr["LastReplyTime"] == DBNull.Value ? DateTime.Now : Convert.ToDateTime(dr["LastReplyTime"]); if (MainForm.IsResetTopicLastpostid) { objTopic.lastpostid = 785200 + objTopic.tid; } else { objTopic.lastpostid = dr["LastReplyId"] == DBNull.Value ? objTopic.tid : Convert.ToInt32(dr["LastReplyId"]); } objTopic.lastposter = dr["LastReplyAuthor"] == DBNull.Value ? "" : dr["LastReplyAuthor"].ToString(); objTopic.lastposterid = dr["LastReplyUID"] == DBNull.Value ? 0 : Convert.ToInt32(dr["LastReplyUID"]); objTopic.views = Convert.ToInt32(dr["Views"]); objTopic.replies = Convert.ToInt32(dr["Replies"]); objTopic.displayorder = Convert.ToInt32(dr["Topped"]) > 0 ? Convert.ToInt32(dr["Topped"]) : 0; if (Convert.ToBoolean(dr["Deleted"])) { objTopic.displayorder = -1; } objTopic.highlight = dr["TitleColor"] == DBNull.Value ? "" : dr["TitleColor"].ToString(); ; objTopic.digest = Convert.ToByte(dr["Elited"]); //objTopic.rate = dr[""] ; objTopic.hide = 1; //TODO //objTopic.poll = dr[""] ; objTopic.attachment = 1; //objTopic.moderated = dr[""] ; objTopic.closed = Convert.ToInt32(dr["Locked"]); //objTopic.magic = dr[""] ; //objTopic.identify= dr[""] ; topiclist.Add(objTopic); } dr.Close(); dr.Dispose(); return topiclist; }