这里更多的是当作随身笔记使用,记录一下学到的知识,以便淡忘的时候能快速回顾

这里是该项目的第二部分,

第一部分

第二部分(当前部分)

大完结版本

此Demo是新建了一个音乐类型的web,然后使用母版页套取格式,对音乐类型进行新建,编辑,删除,和查询的操作

首先创建一个母版页

样式自己调试就好,这里就不附样式代码了

这个母版页没有后台代码

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="AdminSite.master.cs" Inherits="WebApplication1.Admin.AdminSite" %>

<!DOCTYPE html>

<html>
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<asp:ContentPlaceHolder ID="head" runat="server">
</asp:ContentPlaceHolder>
<link href="../Assets/css/animate.min.css" rel="stylesheet" />
<link href="../Assets/css/font-awesome.css" rel="stylesheet" />
<link href="../Assets/css/font-awesome.min.css" rel="stylesheet" />
<link href="../Assets/css/grids-responsive-min.css" rel="stylesheet" />
<link href="../Assets/css/input.css" rel="stylesheet" />
<link href="../Assets/css/login.css" rel="stylesheet" />
<link href="../Assets/css/main.css" rel="stylesheet" />
<link href="../Assets/css/pure-extends.css" rel="stylesheet" />
<link href="../Assets/css/pure-min.css" rel="stylesheet" />
<link href="../Assets/css/shop.css" rel="stylesheet" /> </head>
<body>
<form id="form1" runat="server">
<div id="m-header">
<div class=" home-menu pure-menu pure-menu-horizontal">
<a href="#" class="pure-menu-heading pure-menu-link">在线音乐商店-后台管理</a>
<ul class="pure-menu-list">
<li class="pure-menu-item pure-menu-has-children pure-menu-allow-hover">
<a href="#" class="pure-menu-link">
<i class="fa fa-user-circle"></i>
<asp:Label ID="lbUser" runat="server" Text="管理员"></asp:Label>
</a>
<ul class="pure-menu-children">
<li class="pure-menu-item pure-menu-allow-hover">
<asp:LinkButton ID="lbExit" CssClass="pure-button pure-button-primary" runat="server">注销</asp:LinkButton>
</li>
</ul>
</li>
</ul>
</div> </div>
<div id="m-body" class="pure-g">
<div id="nav" class=" pure-u-1-4">
<div id="nav-item" class="pure-menu custom-restricted-width"> <ul class="pure-menu-list">
<li class="pure-menu-item"><a href="MusicManager.aspx" class="pure-menu-link">音乐管理</a></li>
<li class="pure-menu-item"><a href="MusicType.aspx" class="pure-menu-link">类型管理</a></li>
<li class="pure-menu-item"><a href="OrdersManager.aspx" class="pure-menu-link">订单管理</a></li>
<li class="pure-menu-item"><a href="RoleManager" class="pure-menu-link">角色管理</a></li>
<li class="pure-menu-item"><a href="UserManager" class="pure-menu-link">用户管理</a></li>
</ul>
</div>
</div>
<div id="main" class=" pure-u-3-4">
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
</div>
</div>
<script src="../Assets/js/jquery-3.4.1.min.js"></script>
<script>
$(function () {
$("#nav-item a").each(function () {
var index = window.location.href.indexOf($(this).attr("href"));
if (index != -1) {
$(this).addClass("pure-menu-selected");
} else {
$(this).removeClass("pure-menu-selected");
}
})
})
</script>
</form> </body>
</html>

然后是音乐类型显示的页面

<%@ Page Title="" Language="C#" MasterPageFile="~/Admin/AdminSite.Master" AutoEventWireup="true" CodeBehind="MusicType.aspx.cs" Inherits="WebApplication1.Admin.MusicManager" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
<link href="../Assets/css/input.css" rel="stylesheet" />
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<div class="pure-form">
<fieldset>
<%--genres表--%>
<legend>后台管理<i class="fa fa-angle-double-right"></i>类型管理
<asp:Button ID="Button1" runat="server" CssClass="button-default pure-button-primary tools-button" Text="添加音乐类型" OnClick="Button1_Click" />
</legend>
</fieldset>
</div>
<table class="pure-table">
<thead>
<tr>
<th>#</th>
<th>Make</th>
<th>Model</th>
<th>Year</th>
</tr>
</thead>
<tbody>
<asp:Repeater ID="Repeater1" runat="server" OnItemCommand="Repeater1_ItemCommand">
<ItemTemplate>
<tr>
<th scope="col"><%# Eval("GenreId") %></th>
<td><%# Eval("Name") %></td>
<td><%# Eval("Description").ToString().Length>30?Eval("Description").ToString().Substring(0,30)+"...":Eval("Description") %>...</td>
<td>
<asp:LinkButton ID="LinkButton1" CssClass="button-default pure-button-primary" runat="server" CommandArgument='<%#Eval("GenreId") %>' CommandName="Edit">编辑</asp:LinkButton>
<asp:LinkButton ID="LinkButton2" CssClass="button-default button-error" runat="server" CommandArgument='<%#Eval("GenreId") %>' CommandName="Delete">删除</asp:LinkButton></td> </tr>
</ItemTemplate>
</asp:Repeater>
</tbody>
</table>
</asp:Content>

音乐类型显示页面的后台代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using WebApplication1.DAL; using WebApplication1.BLL; namespace WebApplication1.Admin
{
public partial class MusicManager : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
using (OLMSDBEntities oLMSDB = new OLMSDBEntities())
{
Repeater1.DataSource = oLMSDB.Genres.ToList();
Repeater1.DataBind();
}
} protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
{ string str = e.CommandName.ToString();
//这里获取id,我的id是刚才我赋值的时候CommandArgument是赋值的id
int id = Convert.ToInt32(e.CommandArgument.ToString());
//using (OLMSDBEntities oLMSDB = new OLMSDBEntities())
//{ // var gener = oLMSDB.Genres.FirstOrDefault(t => t.GenreId == id);
if (str == "Delete")
{ //后面是对数据库的操作,可以忽略
// oLMSDB.Genres.Remove(gener);
bool flag_deleteMussicType = MusicType.deleteMusicType(id);
if (flag_deleteMussicType)
{
string strUrl = "<script>alert('删除成功');window.location.href='MusicType.aspx'</script>";
Response.Write(strUrl);
}
else
{
string strUrl = "<script>alert('删除失败');</script>";
Response.Write(strUrl);
}
}
else if (str == "Edit")
{
Response.Redirect($"Edit_MusicType.aspx?id={id}"); }
//}
} protected void Button1_Click(object sender, EventArgs e)
{
Response.Redirect("Add_MusicType.aspx");
}
}
}

然后是添加音乐类型的界面

<%@ Page Title="" Language="C#" MasterPageFile="~/Admin/AdminSite.Master" AutoEventWireup="true" CodeBehind="Add_MusicType.aspx.cs" Inherits="WebApplication1.Admin.Add_MusicType" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<div class="pure-form">
<fieldset>
<legend>类型管理&nbsp;&nbsp;<i class="fa fa-angle-double-right"></i>&nbsp;&nbsp;类型信息
<asp:Button ID="Button2" runat="server" Text="返回" CssClass="pure-button tools-button" OnClick="Button2_Click" />
<asp:Button ID="Button1" runat="server" Text="保存" CssClass="pure-button pure-button-primary tools-button" OnClick="Button1_Click" />
</legend>
</fieldset>
<div class="pure-g">
<div class="pure-u-2-3">
<asp:Label ID="Label1" runat="server" Text="音乐名称"></asp:Label>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
</div>
<div class="pure-u-2-3">
<asp:Label ID="Label2" runat="server" Text="音乐描述"></asp:Label>
<asp:TextBox ID="TextBox2" runat="server" TextMode="MultiLine"></asp:TextBox>
</div>
</div>
</div>
</asp:Content>

添加音乐类型界面的后台代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using WebApplication1.BLL;
using WebApplication1.DAL; namespace WebApplication1.Admin
{
public partial class Add_MusicType : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{ } protected void Button1_Click(object sender, EventArgs e)
{
string music_Name = TextBox1.Text;
string music_Detail = TextBox2.Text; bool flag = MusicType.addMusicType(music_Name, music_Detail);
if (flag)
{
string strUrl = "<script>alert('添加成功');window.location.href='MusicType.aspx'</script>";
Response.Write(strUrl);
}
else
{
string strUrl = "<script>alert('添加失败');</script>";
Response.Write(strUrl);
} //using (OLMSDBEntities oLMSDB = new OLMSDBEntities())
//{ // oLMSDB.Genres.Add(new Genres
// {
// Name = music_Name,
// Description = music_Detail
// });
// if (oLMSDB.SaveChanges() > 0)
// {
// string strUrl = "<script>alert('添加成功');window.location.href='MusicType.aspx'</script>";
// Response.Write(strUrl);
// }
// else
// {
// string strUrl = "<script>alert('添加失败');</script>";
// Response.Write(strUrl);
// }
//}
} protected void Button2_Click(object sender, EventArgs e)
{
string strUrl = "window.location.href='MusicType.aspx'</script>";
Response.Write(strUrl);
}
}
}

编辑音乐类型界面的代码

<%@ Page Title="" Language="C#" MasterPageFile="~/Admin/AdminSite.Master" AutoEventWireup="true" CodeBehind="Edit_MusicType.aspx.cs" Inherits="WebApplication1.Admin.Edit_MusicType" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<div class="pure-form">
<fieldset>
<legend>类型管理&nbsp;&nbsp;<i class="fa fa-angle-double-right"></i>&nbsp;&nbsp;类型信息
<asp:Button ID="Button2" runat="server" Text="返回" CssClass="pure-button tools-button" OnClick="Button2_Click" />
<asp:Button ID="Button1" runat="server" Text="保存" CssClass="pure-button pure-button-primary tools-button" OnClick="Button1_Click" />
</legend>
</fieldset>
<div class="pure-g">
<div class="pure-u-2-3">
<asp:Label ID="Label1" runat="server" Text="音乐名称"></asp:Label>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
</div>
<div class="pure-u-2-3">
<asp:Label ID="Label2" runat="server" Text="音乐描述"></asp:Label>
<asp:TextBox ID="TextBox2" runat="server" TextMode="MultiLine"></asp:TextBox>
</div>
</div>
</div> </asp:Content>

编辑音乐类型界面的后台代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using WebApplication1.BLL;
using WebApplication1.DAL; namespace WebApplication1.Admin
{
public partial class Edit_MusicType : System.Web.UI.Page
{
Genres data;
protected void Page_Load(object sender, EventArgs e)
{ int id = Convert.ToInt32(Request.QueryString["id"]);
OLMSDBEntities oLMSDB = new OLMSDBEntities();
if (!IsPostBack)
{ data = oLMSDB.Genres.FirstOrDefault(t => t.GenreId == id);
TextBox1.Text = data.Name;
TextBox2.Text = data.Description;
}
} protected void Button2_Click(object sender, EventArgs e)
{
string strUrl = "window.location.href='MusicType.aspx'</script>";
Response.Write(strUrl);
} protected void Button1_Click(object sender, EventArgs e)
{
// using (OLMSDBEntities oLMSDB = new OLMSDBEntities())
// {
string music_Name = TextBox1.Text;
string music_Detail = TextBox2.Text;
int id = Convert.ToInt32(Request.QueryString["id"]);
//var genres = oLMSDB.Genres.FirstOrDefault(t => t.GenreId == id);
//genres.Name = TextBox1.Text;
//genres.Description = TextBox2.Text;
bool updateMusicType = MusicType.updateMusicType(id, music_Name, music_Detail);
if (updateMusicType)
{
string strUrl = "<script>alert('修改成功');window.location.href='MusicType.aspx'</script>";
Response.Write(strUrl);
}
else
{
string strUrl = "<script>alert('修改失败');</script>";
Response.Write(strUrl);
}
// }
}
}
}

然后我的音乐类型增删改查的具体实现方法写在BLL里面了

下面是增删改查的代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using WebApplication1.DAL; namespace WebApplication1.BLL
{
public class MusicType
{
public static bool addMusicType(string name, string detail)
{
using (OLMSDBEntities oLMSDB = new OLMSDBEntities())
{ oLMSDB.Genres.Add(new Genres
{
Name = name,
Description = detail
});
if (oLMSDB.SaveChanges() > 0)
{
return true;
}
else
{
return false;
}
} } public static bool deleteMusicType(int id)
{
using (OLMSDBEntities oLMSDB = new OLMSDBEntities())
{
var gener = oLMSDB.Genres.FirstOrDefault(t => t.GenreId == id);
oLMSDB.Genres.Remove(gener);
return oLMSDB.SaveChanges() > 0;
} } public static bool updateMusicType(int id, string name, string detail)
{
using (OLMSDBEntities oLMSDB = new OLMSDBEntities())
{
var genres = oLMSDB.Genres.FirstOrDefault(t => t.GenreId == id);
genres.Name = name;
genres.Description = detail;
return oLMSDB.SaveChanges() > 0;
}
}
}
}

完成效果图如下

首先是主界面,开始添加音乐类型



输入之后点击确定



提示添加成功,然后就可以返回主界面了

主界面已经有了刚才添加的数据

然后开始编辑

修改之后,点击保存

提示修改成功后,返回主界面,下面是修改后的



下面是删除的效果图

提示删除成功之后,就删除了,下面是效果图

ASP.NET中使用Entity Framework开发增删改查的Demo(EF增删改查+母版页的使用)的更多相关文章

  1. ASP.NET中使用Entity Framework开发登陆注册Demo

    这里更多的是当作随身笔记使用,记录一下学到的知识,以便淡忘的时候能快速回顾 当前步骤是该项目的第一部分 第一部分(当前) 第二部分 大完结版本 直接上步骤,有类似的开发登陆注册也可以参考. 登陆注册的 ...

  2. dotnet ef执行报错, VS 2019发布时配置项中的Entity Framework迁移项显示不出来

    VS 2019发布时配置项中的Entity Framework迁移项显示不出来 dotnet ef dbcontext list --json “无法执行,因为找不到指定的命令或文件.可能的原因包括: ...

  3. 如何在ASP.NET Core中应用Entity Framework

    注:本文提到的代码示例下载地址> How to using Entity Framework DB first in ASP.NET Core 如何在ASP.NET Core中应用Entity ...

  4. ASP.NET MVC+EasyUI+Entity FrameWork 整合开发

    本文详细讲解怎么用ASP.NET MVC+EasyUI+Entity FrameWork 来开发一个项目 对于ASP.NET MVC的Jscript库,主要引用 <script type=.mi ...

  5. ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第一章:创建基本的MVC Web站点

    在这一章中,我们将学习如何使用基架快速搭建和运行一个简单的Microsoft ASP.NET MVC Web站点.在我们马上投入学习和编码之前,我们首先了解一些有关ASP.NET MVC和Entity ...

  6. 使用MiniProfiler给Asp.net MVC和Entity Framework号脉(附源码)

    在学习python开发框架pylons/pyramid的过程中,里面有个非常棒的页面性能监控功能,这样在开发过程中,你能清楚的知道当前页面的性能以及其它参数. 这里介绍一下如何给Asp.net MVC ...

  7. ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第六章:管理产品图片——多对多关系(上篇)

    在这章中,我们将学习如何创建一个管理图片的新实体,如何使用HTML表单上传图片文件,并使用多对多关系将它们和产品关联起来,如何将图片存储在文件系统中.在这章中,我们还会学习更加复杂的异常处理,如何向模 ...

  8. ASP.NET Core 配置 Entity Framework Core - ASP.NET Core 基础教程 - 简单教程,简单编程

    原文:ASP.NET Core 配置 Entity Framework Core - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 配置 Entity Fram ...

  9. Oracle中使用Entity Framework 6.x Code-First

    Oracle中使用Entity Framework 6.x Code-First方式开发 去年写过一篇EF的简单学习笔记,当时EF还不支持Oracle的Code-First开发模式,今天无意又看了下O ...

随机推荐

  1. 【Hadoop离线基础总结】Apache Hadoop的三种运行环境介绍及standAlone环境搭建

    Apache Hadoop的三种运行环境介绍及standAlone环境搭建 三种运行环境 standAlone环境 单机版的hadoop运行环境 伪分布式环境 主节点都在一台机器上,从节点分开到其他机 ...

  2. Java 多线程启动为什么调用 start() 方法而不是 run() 方法?

    多线程在工作中多多少少会用到,我们知道启动多线程调用的是 start() 方法,而不是 run() 方法,你知道原因吗? 在探讨这个问题之前,我们先来了解一些多线程的基础知识~ 线程的状态 Java ...

  3. DP之石子堆合并问题

    相邻 环形 总结 (1)相邻:在一个圆形操场的四周摆放着n堆石子(n<= 100),现要将石子有次序地合并成一堆.规定每次只能选取相邻的两堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得 ...

  4. @Resource、@Autowired等几个注解的区别

    1.@Resource注解和@Autowired的区别 @Autowired注解:是按类型装配依赖对象,默认情况下它要求依赖对象必须存在,如果允许null值,可以设置它required属性为false ...

  5. 批量下载B站视频

    一个一个下载:https://www.zhihu.com/question/41367609 WSDAB的回答批量下载:https://www.zhihu.com/question/49793759( ...

  6. jvm启动参数调优

    1.背景 eclipse启动了一个项目,用了15分钟,我佛了,在家办公也懒得弄一直没管,好嘛,越用越气,越来越慢,现在启动一次要半小时了,气不气,然后下定决心调优一下. 2.知识库(自认为调优重要的几 ...

  7. 【clear linux】intel clear linux 电源状态命令

    # 重启系统 $ sudo systemctl reboot # 关闭系统,切断电源 $ sudo systemctl poweroff # CPU停止工作 $ sudo systemctl halt ...

  8. 记一次Oracle分区表全局索引重建的过程

    1.查询数据库各个表空间利用率: SELECT Upper(F.TABLESPACE_NAME) "表空间名", D.TOT_GROOTTE_MB "表空间大小(M)&q ...

  9. 从`ArrayList`中了解Java的迭代器

    目录 什么是迭代器 迭代器的设计意义 ArrayList对迭代器的实现 增强for循环和迭代器 参考链接 什么是迭代器 Java中的迭代器--Iterator是一个位于java.util包下的接口,这 ...

  10. 【比赛随笔】2020.4.25NOIonline2

    之前许多比赛没有统一记录,可能从这次开始会认真打比赛的博客了. p.s.这里的数据是洛谷上的民间数据. T1 涂色游戏 这题据说是cf的原题,不过作为蒟蒻的我,没有打过. 题目链接在这里 题意分析 这 ...