我的 ASP.NET MVC2 学习笔记<二>:数据的新增、删除、编辑功能的实现

新增功能的实现:

先看控制器的代码

       

public ActionResult Create()
        {
            return View();
        }
在点击Index页面中的新增时执行上面这段代码打开Create.aspx页面

        

       

[HttpPost]
        public ActionResult Create(WLsys.Model.Fm_EmpInfo emp)
        {
            try
            {
               dalemp.Add(emp);
               return RedirectToAction("Index");//显示 Index.aspx 
               throw new ArgumentException("保存成功。");
            }
            catch
            {
                return View();
            }
        }
在点击Create.aspx页面中的 Create 按钮时执行上面这段代码,如果新增信息成功则打开Index.aspx页面,如果失败则打开Create.aspx页面进行重新输入。

然后鼠标选中Create()点击右键,弹出添加视图的菜单,点击添加视图,如下图配置即可

wKioL1YD91rwNby2AAFNN0nekx4726.jpg

点击添加即可在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 参数传递的
        public ActionResult Edit(string id)
        {
            mdlemp = dalemp.GetEmpInfo(id);
            if (mdlemp == null)
            {
                throw new ArgumentException("没有获取到有效信息。");
            }
            return View(mdlemp);
        }
上面这段代码是点击Index.aspx中的编辑时执行打开Edit.aspx文件并将要编辑修改的数据显示到页面上
       
        [HttpPost]
        public ActionResult Edit(WLsys.Model.Fm_EmpInfo mdlemp)
        {
            try
            {
                dalemp.UpdateEmpInfo(mdlemp);
          
                return RedirectToAction("Index");
            }
            catch
            {
                return View();
            }
        }

编辑完信息后,在点击Edit.aspx页面中的 Save 按钮时执行上面这段代码,如编辑信息保存成功则打开Index.aspx页面,如果失败则打开Edit.aspx页面进行重新输入。


然后鼠标选中Edit()点击右键,弹出添加视图的菜单,点击添加视图,如下图配置即可

wKiom1YD-eyDNIRLAAFIWk7rQ18971.jpg

点击添加即可在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 参数传递的
        public ActionResult Delete(string id)
        {
            
            mdlemp = dalemp.GetEmpInfo(id);
            if (mdlemp == null)
            {
                throw new ArgumentException("没有获取到有效信息。");
            }
            return View(mdlemp);
        }
       上面这段代码是点击Index.aspx中的删除时执行打开Delete.aspx文件并将要编辑修改的数据显示到页面上 
        [HttpPost]
        public ActionResult Delete(string id, WLsys.Model.Fm_EmpInfo mdlemp)
        {
            try
            {
                dalemp.DeleteEmp(id);
                return RedirectToAction("Index");
            }
            catch
            {
                return View();
            }
        }

在Delete.aspx页面中的 点击 Delete 按钮时执行上面这段代码,如果删除信息成功则打开Index.aspx页面,如果失败则打开Delete.aspx页面进行重新输入。


然后鼠标选中Delete()点击右键,弹出添加视图的菜单,点击添加视图,如下图配置即可

wKiom1YD_D-wwNkpAAFR9AGRGJ4734.jpg

点击添加即可在Views文件夹中生成Delete.aspx,此处说明下 如果想用母版页可以勾选上,此处作为演示 我没有使用任何母版。因为是强类型视图,所以把 Delete.aspx中的第一行替换为下面的代码

<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<WLsys.Model.Fm_EmpInfo>" %>


在执行删除的操作时有一点不好的就是,系统默认会打开一个如下的删除确认页:

wKioL1YD_R-wgey7AAEPfuBkUag664.jpg

然后再点击该页中的Delete按钮才执行删除。这一点在实际操作中比较恶心,如果希望在点击删除时不弹出该页面,直接执行删除的话,Delete(string id)的方法改成如下的代码即可


 public ActionResult Delete(string id)
        {
           dalemp.DeleteEmp(id);
            return RedirectToAction("Index");
        }


最后奉上新增里面 dalemp.Add(emp) 的代码:

 

/// <summary>
/// 增加一条数据
/// </summary>
public int Add(WLsys.Model.Fm_EmpInfo model)
{
StringBuilder strSql=new StringBuilder();
StringBuilder strSql1=new StringBuilder();
StringBuilder strSql2=new StringBuilder();


if (model.EpmPhoto != null)
{
strSql1.Append("EpmPhoto,");
strSql2.Append("'"+model.EpmPhoto+"',");
}
if (model.DataIn != null)
{
strSql1.Append("DataIn,");
strSql2.Append("'"+model.DataIn+"',");
}
strSql.Append("insert into Fm_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");
object obj = DbHelperSQL.GetSingle(strSql.ToString());
if (obj == null)
{
return 0;
}
else
{
return Convert.ToInt32(obj);
}
}

编辑里面  dalemp.UpdateEmpInfo(mdlemp) 的代码:

 /// <summary>
        /// 更新一条数据
        /// </summary>
        public bool UpdateEmpInfo(WLsys.Model.Fm_EmpInfo model)
        {
            StringBuilder strSql = new StringBuilder();
            strSql.Append("update Fm_EmpInfo set ");
            
            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 ,");
            }
           
            int n = strSql.ToString().LastIndexOf(",");
            strSql.Remove(n, 1);
            strSql.Append(" where  EmpName='" + model.EmpName + "'");
            int rowsAffected = DbHelperSQL.ExecuteSql(strSql.ToString());
            if (rowsAffected > 0)
            {
                return true;
            }
            else
            {
                return false;
            }
        }

删除里面   dalemp.DeleteEmp(id) 的代码:

 

             /// <summary>
        /// 删除一条数据
        /// </summary>
        public bool DeleteEmp(string ID)
        {
            StringBuilder strSql = new StringBuilder();
            strSql.Append("delete from Fm_EmpInfo ");
            strSql.Append(" where EmpName='" + ID + "'");
            int rowsAffected = DbHelperSQL.ExecuteSql(strSql.ToString());
            if (rowsAffected > 0)
            {
                return true;
            }
            else
            {
                return false;
            }
        }



你可能感兴趣的:(删除,MVC2的新增,编辑功能的实现)