1.面向对象的思想
添加一个Model层,其中包含各种实体类,例如Category类(有私有字段,属性,还有构造方法)
/* * 作者:胡家威 * 创建时间:2010/10/26 23:02:59 * 类说明:新闻类别类 */ using System; using System.Collections.Generic; using System.Text; namespace Model { /// <summary> /// 新闻类别类 /// </summary> public class Category { private string id; private string name; /// <summary> /// Category的构造方法 /// </summary> /// <param name="id">类别编号</param> /// <param name="name">类别名称</param> public Category(string id, string name) { this.id = id; this.name = name; } public string Id { get { return id; } set { id = value; } } public string Name { get { return name; } set { name = value; } } } }
2.触发器
利用触发器 实现 删除的功能,删除新闻时还要删除新闻评论,删除新闻类别时还要删除新闻和新闻评论!
--删除类别触发器 ALTER TRIGGER trigCategoryDelete ON dbo.category instead of DELETE AS BEGIN declare @caId int select @caId = id from deleted --删除评论 delete remark where nid in (select nid from news where cid = @caId) --删除新闻 delete news where cid=@caId --删除类别 delete category where id=@caId END
触发器不是显示调用的,它是在执行相应的操作时(Insert,Update,Delete)触发的,给某个表添加了触发器后,在该表被执行以上操作时会同时触发执行触发器中的代码!
删除类别的代码:
/// <summary> /// 删除类别 /// </summary> /// <param name="caName">类别名</param> /// <returns>是否删除成功</returns> public bool Delete(string caName) { bool flag = false; string sql = "delete from category where id = @caName"; SqlParameter[] paras = new SqlParameter[]{ new SqlParameter("@caName",caName) }; int res = sqlhelper.ExecuteNonQuery(sql, paras, CommandType.Text); if (res > 0) { flag = true; } return flag; }