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 方法
}
}