本文转自:http://blog.csdn.net/sust2012/article/details/30761867
1. 数据库操作,DAL 层: using System; using System.Collections.Generic; using System.Linq; using System.Text; using Common.DataCommon; using System.Data; using System.Data.SqlClient; using System.Collections; namespace DAL.DAL.Movie { public class MovieDAL { private readonly SqlHelper sh = new SqlHelper(); //pager query movie list public DataTable QueryMovie(int currPage,int pageSize) { DataTable dt = null; string procName = "sp_Movie_GetPagerList"; try { SqlParameter[] sps = { new SqlParameter("@currPage",SqlDbType.Int), new SqlParameter("@pageSize",SqlDbType.Int) }; sps[0].Value = currPage; sps[1].Value = pageSize; dt = sh.ExecuteProcWithReturn(procName, sps); }catch(Exception ex){ throw ex; } return dt; } //get the movie count public Int32 GetMovieCount() { Int32 count = 1; string procName = "sp_Movie_GetCount"; try { DataTable dt = sh.ExecuteProcWithReturn(procName, null); if (null != dt){ count = Convert.ToInt32(dt.Rows[0]["mCount"]); } } catch (Exception ex) { throw ex; } return count; } //get the movie detail public DataTable GetMovie(string movieId) { DataTable dt = null; string procName = "sp_Movie_GetModel"; try { SqlParameter[] sps = { new SqlParameter("@in_Id",SqlDbType.VarChar) }; sps[0].Value = movieId; dt = sh.ExecuteProcWithReturn(procName, sps); } catch (Exception ex) { throw ex; } return dt; } //upload movie public bool UpdateMovie(Model.Movie movie) { bool flag = false; string callName = "sp_Movie_Update"; try { SqlParameter[] sps = { new SqlParameter("@in_Id",SqlDbType.VarChar), new SqlParameter("@in_Title",SqlDbType.NVarChar), new SqlParameter("@in_ReleaseDate",SqlDbType.Date), new SqlParameter("@in_Category",SqlDbType.NVarChar), new SqlParameter("@in_Price",SqlDbType.Money) }; sps[0].Value = movie.Id; sps[1].Value = movie.Title; sps[2].Value = movie.ReleaseDate; sps[3].Value = movie.Category; sps[4].Value = movie.Price; flag = sh.ExecuteProcWithoutReturn(callName, sps); }catch(Exception ex){ throw ex; } return flag; } //delete moive public bool DeleteMovie(string movieId) { bool flag = false; string callName = "sp_Movie_Delete"; try { SqlParameter[] sps = { new SqlParameter("@in_Id",SqlDbType.VarChar) }; sps[0].Value = movieId; flag = sh.ExecuteProcWithoutReturn(callName, sps); }catch(Exception ex){ throw ex; } return flag; } //save movie public bool SaveMovie(Model.Movie movie) { bool flag = false; string callName = "sp_Movie_Add"; try { SqlParameter[] sps = { new SqlParameter("@in_Id",SqlDbType.VarChar), new SqlParameter("@in_Title",SqlDbType.NVarChar), new SqlParameter("@in_ReleaseDate",SqlDbType.Date), new SqlParameter("@in_Category",SqlDbType.NVarChar), new SqlParameter("@in_Price",SqlDbType.Money) }; sps[0].Value = movie.Id; sps[1].Value = movie.Title; sps[2].Value = movie.ReleaseDate; sps[3].Value = movie.Category; sps[4].Value = movie.Price; flag = sh.ExecuteProcWithoutReturn(callName, sps); } catch (Exception ex) { throw ex; } return flag; } } 2. 控制层 Controller using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using BLL.Movie.BLL; using Model; using Model.VO; namespace RelationPro.Controllers { public class MovieController : Controller { // // GET: /Movie/ private readonly MovieBLL movieBLL = new MovieBLL(); public ActionResult Index(int currPage=1) { Page p = new Page(); p.pageSize = 3; Int32 lastPage =(Int32)Math.Ceiling(movieBLL.GetMovieCount()/(double)p.pageSize); p.lastPage = lastPage; if(currPage<1){ currPage = 1; } if (currPage> lastPage) { currPage = lastPage; } p.currPage = currPage; List<Movie> movieList = movieBLL.QueryMovie(currPage, p.pageSize); ViewData["movieList"] = movieList; ViewData["page"] = p; return View(movieList); } public ActionResult Edit(string movieId) { //取需要编辑的信息 Model.Movie movie = movieBLL.GetMovie(movieId); ViewData["movie"] = movie; return View(movie); } [HttpPost] public ActionResult Edit(Model.Movie movie) { //更新 bool flag = movieBLL.UpdateMovie(movie); if(flag){ return RedirectToAction("/Index"); } ViewData["msg"] = "更新失败"; return View(movie); } public ActionResult Delete(int currPage,string movieId) { //根据id删除Movie bool flag = movieBLL.DeleteMovie(movieId); Session["msg"] = ""; if (!flag) { Session["msg"] = "删除失败."; } return RedirectToAction("/index/"+currPage); } public ActionResult Create() { return View(); } [HttpPost] public ActionResult Create(Movie movie) { //save the movie bool flag = movieBLL.SaveMovie(movie); if(flag){ return RedirectToAction("/Index/"); } ViewData["msg"] = "创建失败."; return View("Create"); } } } 3. 前台页面 1. Create.aspx <%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>Create</title> <script type="text/javascript"> function back() { window.location.href = "/Movie/Index"; } </script> </head> <body> <div> <form action="" method="post"> <table align="center" style="width:60%;"> <tr> <td>Title:</td> <td> <input name="Id" value="<%=Guid.NewGuid().ToString() %>" type="hidden"/> <input name="Title"/> </td> </tr> <tr> <td>ReleaseDate:</td> <td><input name="ReleaseDate"/></td> </tr> <tr> <td>Category:</td> <td><input name="Category"/></td> </tr> <tr> <td>Price:</td> <td><input name="Price"/></td> </tr> <tr> <td colspan="2"><input type="submit" value="Submit" /> <input type="button" onclick="back();" value="Calcel"/> <%=ViewData["msg"]%> </td> </tr> </table> </form> </div> </body> </html> } 2. Edit.aspx <%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<Model.Movie>" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>Edit</title> <style type="text/css"> .style1 { width: 167px; } </style> <script type="text/javascript"> function back() { window.location.href = "/Movie/Index"; } </script> </head> <body> <div> <form action="/Movie/Edit/-1" method="post"> <table style="width: 60%;"> <tr> <td class="style1"> Title: </td> <td> <input name="Id" type="hidden" value="<%=Model.Id %>" /> <input name="Title" value="<%=Model.Title %>" /> </td> </tr> <tr> <td class="style1"> ReleaseDate: </td> <td> <input name="ReleaseDate" value="<%=Model.ReleaseDate %>" /> </td> </tr> <tr> <td class="style1"> Category: </td> <td> <input name="Category" value="<%=Model.Category %>" /> </td> </tr> <tr> <td class="style1"> Price: </td> <td> <input name="Price" value='<%= Model.Price %>' /> </td> </tr> <tr> <td><input type="submit" value="Update"/></td> <td><input type="button" onclick="back()" value="Cancel" style="height: 21px"/> <%=ViewData["msg"] %></td> </tr> </table> </form> </div> </body> </html> 3. Index.aspx <%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>电影列表</title> <style type="text/css"> .style1 { width: 95px; } </style> </head> <body> <div> <a href="/Movie/Create">新建</a><br/> <table> <tr> <th>标题</th> <th>发型日期</th> <th>总类</th> <th>价格</th> <th colspan="2">操作</th> </tr> <% List<Movie> movieList = (List<Movie>)ViewData["movieList"]; if(null != movieList){ Model.VO.Page page = (Model.VO.Page)ViewData["page"]; foreach(Movie m in movieList){ %> <tr> <td><%=m.Title %></td> <td><%=m.ReleaseDate.ToString("yyyy-MM-dd")%></td> <td><%=m.Category %></td> <td><%=m.Price.ToString("#0.00") %></td> <td class="style1" colspan="2"> <a href="/Movie/Edit/1/<%=m.Id %>">编辑</a> <a href="/Movie/Delete/<%=page.currPage %>/<%=m.Id %>">删除  <%=Session["msg"]%></a> </td> </tr> <% } %> <% %> <tr> <td colspan="4"> <a href="/Movie/Index/1">首页</a> <a href="/Movie/Index/<%=page.currPage-1 %>">上一页</a> <a href="/Movie/Index/<%=page.currPage+1 %>">下一页</a> <a href="/Movie/Index/<%=page.lastPage %>">尾页</a> </td> <td>当前<%=page.currPage %> :共页<%=page.lastPage %></td> </tr> <% } %> </table> </div> </body> </html> 4. routine 的配置 routes.MapRoute( "Movie", // 路由名称 "Movie/{action}/{currPage}/{movieId}", // 带有参数的 URL new { controller = "Movie", action = "Index", currPage = 1, movieId = UrlParameter.Optional } // 参数默认值 ); routes.MapRoute( "Default", // 路由名称 "{controller}/{action}/{currPage}/{movieId}", // 带有参数的 URL new { controller = "Movie", action = "Index", currPage = 1, movieId = UrlParameter.Optional } // 参数默认值 );