[转].NET MVC 分页以及增删查改
本文转自: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"/> <%=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"/> <%=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 %>">删除  <%=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 %> :共页<%=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 分页以及增删查改的更多相关文章
- backbonejs mvc框架的增删查改实例
一:开发环境 coffeescript和nodejs需要先安装,没装网上自己查安装步骤. 代码编写环境及esp框架下载: esp框架下载地址:https://github.com/nonocast/e ...
- 6.在MVC中使用泛型仓储模式和依赖注入实现增删查改
原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-operations-using-the-generic-repository-pat ...
- 4.在MVC中使用仓储模式进行增删查改
原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-using-the-repository-pattern-in-mvc/ 系列目录: ...
- 5.在MVC中使用泛型仓储模式和工作单元来进行增删查改
原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-operations-using-the-generic-repository-pat ...
- knockout+MVC+webapi+sqlserver完成增删查改
快过年了,公司的事情较少,想着开始学习点新东西.这段时间一个项目用到了mvc和webapi,然后一直对knockout比较感兴趣,就想着用这个框架做一个小实例.数据库采用的是sqlserver.话不多 ...
- 在MVC中使用泛型仓储模式和工作单元来进行增删查改
原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-operations-using-the-generic-repository-pat ...
- 在MVC中使用泛型仓储模式和依赖注入实现增删查改
标签: 原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-operations-using-the-generic-repository ...
- VS 自动创建带增删查改的MVC网站
VS 自动创建带增删查改的MVC网站 MVC.Net教程 废话放在前头,说一下这个文章的缘起某天某妹纸找我,说这个MVC的创建不太会,要记一下controllers.models.还有页面引用的东 ...
- MVC——再探MVC——增删查改
MVC 是我大学学的比较弱的,甚至不懂原理.(那时候都在准备蓝桥杯 软件杯比赛.) 在重新学 肯定要学MVC 现在知道了为什么叫MVC了 MVC是怎么工作的 MVC 是一个设计模式 控制器(Cont ...
随机推荐
- Hibernate exception
1.a different object with the same identifier value was already associated with the session. 错误原因:在h ...
- Hadoop集群搭建-虚拟机安装(转)(一)
1.软件准备 a).操作系统:CentOS-7-x86_64-DVD-1503-01 b).虚拟机:VMware-workstation-full-9.0.2-1031769(英文原版先安装) VM ...
- iOS 设置TextView控件内容行间距
- (BOOL)textViewShouldBeginEditing:(UITextView *)textView { if (textView.text.length < 1) { textV ...
- 关于animate的一些属性
animate() 方法执行 CSS 属性集的自定义动画.该方法通过CSS样式将元素从一个状态改变为另一个状态.CSS属性值是逐渐改变的,这样就可以创建动画效果.只有数字值可创建动画(比如 " ...
- iOS字符串的各种用法(字符串插入、字符串覆盖、字符串截取、分割字符串)
NSString* str=@"hello";//存在代码区,不可变 NSLog(@"%@",str); //1.[字符串插入] NSMutableString ...
- hdu 4763 Theme Section(next数组找串中三段相等)
题意:在一个串中找 EAEBE 的形式的最长的E,其中E为一个字符串,也就是说找到前缀与后缀相同,并且串中还存在相同的一段,它们不能重复. 思路:利用next数组,next[len]代表的即是最大的相 ...
- ubuntu 源、codename 与 sources.list 文件
查看 codename $ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubunt ...
- [Selenium] Grid 介绍
Selenium Grid 支持分布式测试,使测试人员可在分布式环境中进行测试 一般而言,在面临以下情况时可考虑使用Selenium Grid : 1.测试多个浏览器或单个浏览器多个版本,或测试不同操 ...
- MyBatis相关资源
MyBatis很多项目中有用到,但会用并不表示你真正理解它,更不代表你能很清楚的教会别人.如果想在会用它的基础上更深入的通过学习它而提升自己技术能力,可利用下面资源. 1.官网文档,基本概念讲的很清楚 ...
- 转载:PowerPivot for excel 100 Create KPI
PowerPivot for excel 100 Create KPI 最近在了解PowerPivot,遇到了一些问题,不过还好最近都解决了,下面介绍一下关于在PowerPivot里面如何创 ...