我的 ASP.NET MVC2 学习笔记<二>:数据的新增、删除、编辑功能的实现
新增功能的实现:
先看控制器的代码
publicActionResultCreate(){returnView();}
在点击Index页面中的新增时执行上面这段代码打开Create.aspx页面
[HttpPost]publicActionResultCreate(WLsys.Model.Fm_EmpInfoemp){try{dalemp.Add(emp);returnRedirectToAction("Index");//显示Index.aspxthrownewArgumentException("保存成功。");}catch{returnView();}}
在点击Create.aspx页面中的Create按钮时执行上面这段代码,如果新增信息成功则打开Index.aspx页面,如果失败则打开Create.aspx页面进行重新输入。
然后鼠标选中Create()点击右键,弹出添加视图的菜单,点击添加视图,如下图配置即可
点击添加即可在Views文件夹中生成Create.aspx,此处说明下 如果想用母版页可以勾选上,此处作为演示 我没有使用任何母版。因为是强类型视图,所以把Create.aspx中的第一行替换为下面的代码
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<WLsys.Model.Fm_EmpInfo>" %>
编辑功能的实现:
先看控制器的代码
//此处的id参数是从Index.aspx中的<%:Html.ActionLink("编辑","Edit",new{id=item.EmpName})%>new参数传递的publicActionResultEdit(stringid){mdlemp=dalemp.GetEmpInfo(id);if(mdlemp==null){thrownewArgumentException("没有获取到有效信息。");}returnView(mdlemp);}上面这段代码是点击Index.aspx中的编辑时执行打开Edit.aspx文件并将要编辑修改的数据显示到页面上[HttpPost]publicActionResultEdit(WLsys.Model.Fm_EmpInfomdlemp){try{dalemp.UpdateEmpInfo(mdlemp);returnRedirectToAction("Index");}catch{returnView();}}
编辑完信息后,在点击Edit.aspx页面中的Save按钮时执行上面这段代码,如编辑信息保存成功则打开Index.aspx页面,如果失败则打开Edit.aspx页面进行重新输入。
然后鼠标选中Edit()点击右键,弹出添加视图的菜单,点击添加视图,如下图配置即可
点击添加即可在Views文件夹中生成Edit.aspx,此处说明下 如果想用母版页可以勾选上,此处作为演示 我没有使用任何母版。因为是强类型视图,所以把Edit.aspx中的第一行替换为下面的代码
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<WLsys.Model.Fm_EmpInfo>" %>
删除功能的实现:
先看控制器代码
//此处的id参数是从Index.aspx中的<%:Html.ActionLink("删除","Delete",new{id=item.EmpName})%>new参数传递的publicActionResultDelete(stringid){mdlemp=dalemp.GetEmpInfo(id);if(mdlemp==null){thrownewArgumentException("没有获取到有效信息。");}returnView(mdlemp);}上面这段代码是点击Index.aspx中的删除时执行打开Delete.aspx文件并将要编辑修改的数据显示到页面上[HttpPost]publicActionResultDelete(stringid,WLsys.Model.Fm_EmpInfomdlemp){try{dalemp.DeleteEmp(id);returnRedirectToAction("Index");}catch{returnView();}}
在Delete.aspx页面中的点击Delete按钮时执行上面这段代码,如果删除信息成功则打开Index.aspx页面,如果失败则打开Delete.aspx页面进行重新输入。
然后鼠标选中Delete()点击右键,弹出添加视图的菜单,点击添加视图,如下图配置即可
点击添加即可在Views文件夹中生成Delete.aspx,此处说明下 如果想用母版页可以勾选上,此处作为演示 我没有使用任何母版。因为是强类型视图,所以把Delete.aspx中的第一行替换为下面的代码
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<WLsys.Model.Fm_EmpInfo>" %>
在执行删除的操作时有一点不好的就是,系统默认会打开一个如下的删除确认页:
然后再点击该页中的Delete按钮才执行删除。这一点在实际操作中比较恶心,如果希望在点击删除时不弹出该页面,直接执行删除的话,Delete(string id)的方法改成如下的代码即可
publicActionResultDelete(stringid){dalemp.DeleteEmp(id);returnRedirectToAction("Index");}
最后奉上新增里面dalemp.Add(emp) 的代码:
///<summary>///增加一条数据///</summary>publicintAdd(WLsys.Model.Fm_EmpInfomodel){StringBuilderstrSql=newStringBuilder();StringBuilderstrSql1=newStringBuilder();StringBuilderstrSql2=newStringBuilder();if(model.EpmPhoto!=null){strSql1.Append("EpmPhoto,");strSql2.Append("'"+model.EpmPhoto+"',");}if(model.DataIn!=null){strSql1.Append("DataIn,");strSql2.Append("'"+model.DataIn+"',");}strSql.Append("insertintoFm_EmpInfo(");strSql.Append(strSql1.ToString().Remove(strSql1.Length-1));strSql.Append(")");strSql.Append("values(");strSql.Append(strSql2.ToString().Remove(strSql2.Length-1));strSql.Append(")");strSql.Append(";select@@IDENTITY");objectobj=DbHelperSQL.GetSingle(strSql.ToString());if(obj==null){return0;}else{returnConvert.ToInt32(obj);}}
编辑里面dalemp.UpdateEmpInfo(mdlemp)的代码:
///<summary>///更新一条数据///</summary>publicboolUpdateEmpInfo(WLsys.Model.Fm_EmpInfomodel){StringBuilderstrSql=newStringBuilder();strSql.Append("updateFm_EmpInfoset");if(model.EmpDuty!=null){strSql.Append("EmpDuty='"+model.EmpDuty+"',");}else{strSql.Append("EmpDuty=null,");}if(model.EmpBirth!=null){strSql.Append("EmpBirth='"+model.EmpBirth+"',");}else{strSql.Append("EmpBirth=null,");}if(model.BirthNote!=null){strSql.Append("BirthNote='"+model.BirthNote+"',");}else{strSql.Append("BirthNote=null,");}intn=strSql.ToString().LastIndexOf(",");strSql.Remove(n,1);strSql.Append("whereEmpName='"+model.EmpName+"'");introwsAffected=DbHelperSQL.ExecuteSql(strSql.ToString());if(rowsAffected>0){returntrue;}else{returnfalse;}}
删除里面dalemp.DeleteEmp(id)的代码:
///<summary>///删除一条数据///</summary>publicboolDeleteEmp(stringID){StringBuilderstrSql=newStringBuilder();strSql.Append("deletefromFm_EmpInfo");strSql.Append("whereEmpName='"+ID+"'");introwsAffected=DbHelperSQL.ExecuteSql(strSql.ToString());if(rowsAffected>0){returntrue;}else{returnfalse;}}
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。