本文转自:http://blog.csdn.net/sust2012/article/details/30761867

. 数据库操作,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[].Value = currPage;
sps[].Value = pageSize;
dt = sh.ExecuteProcWithReturn(procName, sps);
}catch(Exception ex){
throw ex;
}
return dt;
} //get the movie count
public Int32 GetMovieCount()
{
Int32 count = ;
string procName = "sp_Movie_GetCount";
try
{ DataTable dt = sh.ExecuteProcWithReturn(procName, null);
if (null != dt){
count = Convert.ToInt32(dt.Rows[]["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[].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[].Value = movie.Id;
sps[].Value = movie.Title;
sps[].Value = movie.ReleaseDate;
sps[].Value = movie.Category;
sps[].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[].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[].Value = movie.Id;
sps[].Value = movie.Title;
sps[].Value = movie.ReleaseDate;
sps[].Value = movie.Category;
sps[].Value = movie.Price; flag = sh.ExecuteProcWithoutReturn(callName, sps); }
catch (Exception ex)
{
throw ex;
}
return flag;
} } . 控制层 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=)
{
Page p = new Page();
p.pageSize = ;
Int32 lastPage =(Int32)Math.Ceiling(movieBLL.GetMovieCount()/(double)p.pageSize);
p.lastPage = lastPage;
if(currPage<){
currPage = ;
}
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");
}
}
} . 前台页面 . 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=""><input type="submit" value="Submit" />
<input type="button" onclick="back();" value="Calcel"/>&nbsp;<%=ViewData["msg"]%>
</td>
</tr>
</table>
</form>
</div>
</body>
</html> } . 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"/>&nbsp;<%=ViewData["msg"] %></td>
</tr>
</table>
</form>
</div>
</body>
</html> . 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="">操作</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="">
<a href="/Movie/Edit/1/<%=m.Id %>">编辑</a>
<a href="/Movie/Delete/<%=page.currPage %>/<%=m.Id %>">删除 &nbsp<%=Session["msg"]%></a>
</td>
</tr>
<%
} %>
<% %>
<tr>
<td colspan="">
<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 %>&nbsp;:共页<%=page.lastPage %></td> </tr>
<%
} %> </table>
</div> </body>
</html> . routine 的配置 routes.MapRoute(
"Movie", // 路由名称
"Movie/{action}/{currPage}/{movieId}", // 带有参数的 URL
new { controller = "Movie", action = "Index", currPage = , movieId = UrlParameter.Optional } // 参数默认值
); routes.MapRoute(
"Default", // 路由名称
"{controller}/{action}/{currPage}/{movieId}", // 带有参数的 URL
new { controller = "Movie", action = "Index", currPage = , movieId = UrlParameter.Optional } // 参数默认值
);

[转].NET MVC 分页以及增删查改的更多相关文章

  1. backbonejs mvc框架的增删查改实例

    一:开发环境 coffeescript和nodejs需要先安装,没装网上自己查安装步骤. 代码编写环境及esp框架下载: esp框架下载地址:https://github.com/nonocast/e ...

  2. 6.在MVC中使用泛型仓储模式和依赖注入实现增删查改

    原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-operations-using-the-generic-repository-pat ...

  3. 4.在MVC中使用仓储模式进行增删查改

    原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-using-the-repository-pattern-in-mvc/ 系列目录: ...

  4. 5.在MVC中使用泛型仓储模式和工作单元来进行增删查改

    原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-operations-using-the-generic-repository-pat ...

  5. knockout+MVC+webapi+sqlserver完成增删查改

    快过年了,公司的事情较少,想着开始学习点新东西.这段时间一个项目用到了mvc和webapi,然后一直对knockout比较感兴趣,就想着用这个框架做一个小实例.数据库采用的是sqlserver.话不多 ...

  6. 在MVC中使用泛型仓储模式和工作单元来进行增删查改

    原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-operations-using-the-generic-repository-pat ...

  7. 在MVC中使用泛型仓储模式和依赖注入实现增删查改

    标签: 原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-operations-using-the-generic-repository ...

  8. VS 自动创建带增删查改的MVC网站

    VS 自动创建带增删查改的MVC网站 MVC.Net教程   废话放在前头,说一下这个文章的缘起某天某妹纸找我,说这个MVC的创建不太会,要记一下controllers.models.还有页面引用的东 ...

  9. MVC——再探MVC——增删查改

    MVC 是我大学学的比较弱的,甚至不懂原理.(那时候都在准备蓝桥杯 软件杯比赛.) 在重新学 肯定要学MVC 现在知道了为什么叫MVC了  MVC是怎么工作的 MVC 是一个设计模式 控制器(Cont ...

随机推荐

  1. Hibernate exception

    1.a different object with the same identifier value was already associated with the session. 错误原因:在h ...

  2. Hadoop集群搭建-虚拟机安装(转)(一)

    1.软件准备 a).操作系统:CentOS-7-x86_64-DVD-1503-01 b).虚拟机:VMware-workstation-full-9.0.2-1031769(英文原版先安装)  VM ...

  3. iOS 设置TextView控件内容行间距

    - (BOOL)textViewShouldBeginEditing:(UITextView *)textView { if (textView.text.length < 1) { textV ...

  4. 关于animate的一些属性

    animate() 方法执行 CSS 属性集的自定义动画.该方法通过CSS样式将元素从一个状态改变为另一个状态.CSS属性值是逐渐改变的,这样就可以创建动画效果.只有数字值可创建动画(比如 " ...

  5. iOS字符串的各种用法(字符串插入、字符串覆盖、字符串截取、分割字符串)

    NSString* str=@"hello";//存在代码区,不可变 NSLog(@"%@",str); //1.[字符串插入] NSMutableString ...

  6. hdu 4763 Theme Section(next数组找串中三段相等)

    题意:在一个串中找 EAEBE 的形式的最长的E,其中E为一个字符串,也就是说找到前缀与后缀相同,并且串中还存在相同的一段,它们不能重复. 思路:利用next数组,next[len]代表的即是最大的相 ...

  7. ubuntu 源、codename 与 sources.list 文件

    查看 codename $ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubunt ...

  8. [Selenium] Grid 介绍

    Selenium Grid 支持分布式测试,使测试人员可在分布式环境中进行测试 一般而言,在面临以下情况时可考虑使用Selenium Grid : 1.测试多个浏览器或单个浏览器多个版本,或测试不同操 ...

  9. MyBatis相关资源

    MyBatis很多项目中有用到,但会用并不表示你真正理解它,更不代表你能很清楚的教会别人.如果想在会用它的基础上更深入的通过学习它而提升自己技术能力,可利用下面资源. 1.官网文档,基本概念讲的很清楚 ...

  10. 转载:PowerPivot for excel 100 Create KPI

    PowerPivot for excel 100 Create KPI      最近在了解PowerPivot,遇到了一些问题,不过还好最近都解决了,下面介绍一下关于在PowerPivot里面如何创 ...