Esempio n. 1
0
        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;
        }
Esempio n. 2
0
        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;
        }