Asp.NET笔记(五)--使用linq+三层架构实现数据的删除

用linq实现数据删除
一、在Model层添加linq to Sql类
  添加新建项-->linq to Sql类-->服务资源管理器添加数据连接-->将数据库中表拖拽到linq类中-->保存
二、在DAL层实现数据的删除
如:  

     /// <summary>
        /// 删除评论
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public bool DeleteComments(int id)
        {
            //实例化数据上下文对象
            DataCommonDataContext db = new DataCommonDataContext();
            //通过id查询要删除的实体
            Comments comments = (from i in db.Comments
                                 where i.ID == id  //添加查询条件
                                 select i).FirstOrDefault(); //获取查询到的第一个或默认的值
            if (comments != null)//如果查询到的实体不为空
            {
                //执行删除操作
                db.Comments.DeleteOnSubmit(comments);
                db.SubmitChanges();//将结果保存到数据库
                return true;//返回成功
            }
            else
            {
                return false;//返回失败
            }

        }


三、在BLL层实现DAL层方法的调用
如:
  

     /// <summary>
        /// 删除评论
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public bool DeleteComments(int id)
        {
            Comments_DAL dal = new Comments_DAL();//实例化dal对象
            return dal.DeleteComments(id);//返回dal层调用的方法
        }

四、在UI层实现对BLL方法的调用和数据的展示

1、前台页面数据绑定控件的<ItemTemplate>标签中:
添加LinkButton按钮,在按钮中添加CommandName、和 CommandArgument 属性
添加属性OnClientClick ="return confirm('你确定要删除吗?')"
如:

 <asp:LinkButton ID="LinkButton1" runat="server" CommandName="del" CommandArgument='<%#Eval("ID") %>' OnClientClick ="return confirm('你确定要删除吗?')">删除</asp:LinkButton>

2、触发按钮的RowCommand或ItemCommand事件,在事件中执行删除
如:

       //判断前端CommandName属性值是否是del删除
            if (e.CommandName == "del")
            {
                //获取前端定义的CommandArgument属性值
                int id = Convert.ToInt32(e.CommandArgument);
                //执行删除并判断是否删除成功
                if (bll.DeleteComments(id))
                {
                    Response.Write("<script>alert('删除成功!')</script>");
                }
                else
                {
                    Response.Write("<script>alert('删除失败!')</script>");
                }
            }
OnClientClick ="return confirm('你确定要删除吗?')"执行效果为点击删除按钮,提示是否要删除吗?如果确定则执行删除操作,否则不执行

原文地址:https://www.cnblogs.com/JuneDream/p/14147832.html