论坛App_Code BusinessLogicLayer(2)

来源:互联网 发布:memcache java 教程 编辑:程序博客网 时间:2024/04/30 13:01

Topic.cs

using System;
using System.Collections;
using System.Data;

using MyBBS.DataAccessLayer;
using MyBBS.DataAccessHelper;
//该源码下载自www.51aspx.com(51aspx.com)


namespace MyBBS.BusinessLogicLayer
{
    /// <summary>
    /// 帖子对象
    /// </summary>
    public class Topic
    {
        #region 私有成员

        private int _topicID;  //帖子ID
        private string _userLoginName; //用户
        private string _title;  //标题
        private string _content; //内容
        private DateTime _createTime;//发表时间
        private string _ip;   //用户IP

        private bool _exist;  //是否存在标志

        #endregion 私有成员

        #region 属性

        public int TopicID
        {
            set
            {
                this._topicID = value;
            }
            get
            {
                return this._topicID;
            }
        }
        public string UserLoginName
        {
            set
            {
                this._userLoginName = value;
            }
            get
            {
                return this._userLoginName;
            }
        }
        public string Title
        {
            set
            {
                this._title = value;
            }
            get
            {
                return this._title;
            }
        }
        public string Content
        {
            set
            {
                this._content = value;
            }
            get
            {
                return this._content;
            }
        }
        public DateTime CreateTime
        {
            set
            {
                this._createTime = value;
            }
            get
            {
                return this._createTime;
            }
        }
        public string IP
        {
            set
            {
                this._ip = value;
            }
            get
            {
                return this._ip;
            }
        }
        public bool Exist
        {
            get
            {
                return this._exist;
            }
        }

        #endregion 属性

        #region 方法

        /// <summary>
        /// 根据参数topicID,获取帖子细信息
        /// </summary>
        /// <param name="topicID">帖子ID</param>
        public void LoadData(int topicID)
        {
            Database db = new Database();  //实例化一个Database类

            string sql = "";
            sql = "Select * from [Topic] where TopicID = " + topicID;

            DataRow dr = db.GetDataRow(sql); //利用Database类的GetDataRow方法查询用户数据

            //根据查询得到的数据,对成员赋值
            if (dr != null)
            {
                this._topicID = GetSafeData.ValidateDataRow_N(dr, "TopicID");
                this._userLoginName = GetSafeData.ValidateDataRow_S(dr, "UserLoginName");
                this._title = GetSafeData.ValidateDataRow_S(dr, "Title");
                this._content = GetSafeData.ValidateDataRow_S(dr, "Content");
                this._createTime = GetSafeData.ValidateDataRow_T(dr, "CreateTime");
                this._ip = GetSafeData.ValidateDataRow_S(dr, "IP");

                this._exist = true;
            }
            else
            {
                this._exist = false;
            }
        }

        /// <summary>
        /// 向数据库添加一个帖子
        /// </summary>
        /// <param name="topicInfo">帖子信息哈希表</param>
        public void Add(Hashtable topicInfo)
        {
            Database db = new Database();  //实例化一个Database类
            db.Insert("[Topic]", topicInfo); //利用Database类的Inser方法,插入数据
        }

        /// <summary>
        /// 修改帖子内容
        /// </summary>
        /// <param name="newTopicInfo"></param>
        public void Update(Hashtable newTopicInfo)
        {
            Database db = new Database();
            string strCond = "Where TopicID = " + this._topicID;
            db.Update("[Topic]", newTopicInfo, strCond);
        }

        /// <summary>
        /// 删除本帖子,还要级联删除该帖所有的回帖
        /// </summary>
        public void Delete()
        {
            ArrayList sqls = new ArrayList();
            string sql = "";

            sql = "Delete from [Topic] where TopicID = " + this._topicID;
            sqls.Add(sql);


            sql = "Delete from [Reply] where TopicID = " + this._topicID;
            sqls.Add(sql);

            Database db = new Database();
            db.ExecuteSQL(sqls);
        }

        /// <summary>
        /// 按时间降序,读取所有帖子
        /// </summary>
        /// <returns></returns>
        public static DataSet QueryTopics()
        {
            string sql = "";
            sql = "Select * from [Topic] order by CreateTime desc";
            Database db = new Database();
            return db.GetDataSet(sql);
        }

        /// <summary>
        /// 按时间降序,读取本主题的所有回复
        /// </summary>
        /// <returns></returns>
        public DataSet QueryReplies()
        {
            string sql = "";
            sql = "Select [Reply].*,[User].LoginName from [Reply],[User] "
                + " Where [Reply].UserLoginName = [User].LoginName and TopicID = " + this._topicID
                + " order by CreateTime desc ";
            Database db = new Database();
            return db.GetDataSet(sql);
        }

        #endregion 方法
    }
}

 

原创粉丝点击