程序人生系列之新闻发布系统 1011

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;
        }

  

原文地址:https://www.cnblogs.com/yinger/p/2084823.html