.NET MVC 分页以及增删查改

这个博客介绍了如何使用.NET MVC进行电影数据的增删查改操作。在DAL层,展示了如何通过存储过程进行分页查询、获取总数、详情查询、更新和删除电影。在Controller层,实现了电影列表展示、编辑、删除和创建的功能。最后,前台页面包含创建、编辑和显示电影列表的HTML,并使用了简单的JavaScript交互。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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"/>&nbsp;<%=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"/>&nbsp;<%=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 %>">删除 &nbsp<%=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 %>&nbsp;:共页<%=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 } // 参数默认值
       );

 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sust2012

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值