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