zoukankan      html  css  js  c++  java
  • 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('你确定要删除吗?')"执行效果为点击删除按钮,提示是否要删除吗?如果确定则执行删除操作,否则不执行

  • 相关阅读:
    解决:Requested 'libdrm_radeon >= 2.4.56' but version of libdrm_radeon is 2.4.52
    解决Ubuntun 12.04编译Mesa10.3 WARNING: 'aclocal-1.14' is missing on your system
    交叉编译Mesa,X11lib,Qt opengl
    Qt5.4.1移植到arm——Linuxfb篇
    Qt5.3.0的安装与测试
    gstreamer——文档/资源/使用
    gst-rtsp-server编译测试
    gstreamer-tips-picture-in-picture-compositing
    Matlab实现加性高斯白噪声信道(AWGN)下的digital调制格式识别分类
    Matlab实现单(双)极性(不)归零码
  • 原文地址:https://www.cnblogs.com/JuneDream/p/14147832.html
Copyright © 2011-2022 走看看