本文转自: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. JUNO eclipse Version: 4.2.0 添加svn插件

    1.下载最新的这个版本的SVN http://www.eclipse.org/subversive/latest-releases.php 实际的下载地址 http://www.eclipse.org ...

  2. 开源企业IM免费企业即时通讯ENTBOOST V2014.177版本号正式公布

    版权声明:本文为博主原创文章,欢迎转载,转载请尽量保持原文章完整,谢谢! https://blog.csdn.net/yanghz/article/details/30529469 ENTBOOST, ...

  3. Deep Learning 31: 不同版本的keras,对同样的代码,得到不同结果的原因总结

    一.疑问 这几天一直纠结于一个问题: 同样的代码,为什么在keras的0.3.3版本中,拟合得比较好,也没有过拟合,验证集准确率一直高于训练准确率. 但是在换到keras的1.2.0版本中的时候,就过 ...

  4. OPENCV在ARM平台的移植

    两篇别人推荐给我的文章,我想直接复制过来,呵呵,但一想真不好,等我做一遍了再来写一遍.还是贴链接. OpenCV在ARM上的移植:http://www.cnblogs.com/emouse/archi ...

  5. SWT.Shell

    import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; public class SWT_Shell ...

  6. i MySQL 查看约束,添加约束,删除约束

    查看表的字段信息:desc 表名; 查看表的所有信息:show create table 表名; 添加主键约束:alter table 表名 add constraint 主键 (形如:PK_表名) ...

  7. antV G6流程图在Vue中的使用

    最近我司项目中需要加入流程图制作功能,于是乎百度各种找可视化绘制拓扑图的轮子,大部分都是国外的,看文档太吃力,不过好在最终让我发现了AntV G6流程图图表库,最新版为2.0,不过编辑器在2.0版本还 ...

  8. BestCoder5 1001 Poor Hanamichi(hdu 4956) 解题报告

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4956(它放在题库后面的格式有一点点问题啦,所以就把它粘下来,方便读者观看) 题目意思:给出一个范围 [ ...

  9. codeforces 450C. Jzzhu and Chocolate 解题报告(449A)

    题目链接:http://codeforces.com/contest/450/problem/C 题目意思:给出一个 n * m 大小的chocolate bar,你需要在这个bar上切 k 刀,使得 ...

  10. Windows命令行bat批处理延迟sleep方法

    使用ping 的定时功能,精度1秒 实战:创建示例文件test.bat,内容如下: 代码如下:ping -n 3 127.0.0.1>nul 说明:3为ping包发送次数,可作为延迟秒数进行使用 ...