一.SQL数据库代码

CREATE DATABASE MVCLession31
GO
USE MVCLession31
GO
CREATE TABLE Dept (DeptId int IDENTITY(1,1) PRIMARY KEY NOT NULL,DeptName varchar(50)  NOT NULL
);
GO
insert into Dept values('销售部'),('开发部'),('研发部')
CREATE TABLE Employee (EmpId int IDENTITY(1,1) PRIMARY KEY NOT NULL,DeptId int references Dept(DeptId)  NOT NULL,EmpName varchar(50)  NOT NULL,EmpPhone varchar(50)  NOT NULL,EmpArea varchar(50)  NOT NULL,EmpSalary decimal(18,2)  NOT NULL
);
GO
insert into Employee values(1,'李四','15914541452','北京',12345),(2,'王麻子','15154541452','北京',22345),(3,'张三','15414541452','北京',52345)
go
CREATE TABLE UserInfo
(
UserId int IDENTITY(1,1) PRIMARY KEY NOT NULL,
UserName varchar(50)  NOT NULL,
Password varchar(50)  NOT NULL
)
go
insert into UserInfo values('123','123456'),('admin','1234567'),('admin2','11234567')

二.查询

1.查询页面

<body><center><h1>员工查询</h1><a href="AddEmpFrom">添加员工</a></center><div><table align="center" border="1" cellspacing="0" width="700"><tr><th>员工编号</th><th>部门名称</th><th>员工姓名</th><th>员工电话</th><th>所在地区</th><th>员工薪资</th><th colspan="2">操作</th></tr>@foreach (var item in ViewBag.info){<tr><td>@item.EmpId</td><td>@item.DeptName</td><td>@item.EmpName</td><td>@item.EmpPhone</td><td>@item.EmpArea</td><td>@item.EmpSalary</td><td><a href="DeleteEmp?EmpId=@item.EmpId" onclick="return confirm('确定删除吗?') ">删除</a></td><td><a href="ExcistEmpFrom?EmpId=@item.EmpId">编辑</a></td></tr>}</table></div>
</body>

2.EmployeeViewFrom类

public class EmployeeViewFrom{public int EmpId { get; set; }public string DeptName { get; set; }public string EmpName { get; set; }public string EmpPhone { get; set; }public string EmpArea { get; set; }public Nullable<decimal> EmpSalary { get; set; }}

3.Home控制器中的Index方法

public ActionResult Index(){//ViewBag.info = db.Employee;ViewBag.info = from e in db.Employeejoin d in db.Dept on e.DeptId equals d.DeptIdselect new EmployeeViewFrom{EmpId =e.EmpId,EmpName =e.EmpName,EmpPhone =e.EmpPhone,EmpArea =e.EmpArea,EmpSalary =e.EmpSalary,DeptName =d.DeptName};return View();}

4.运行结果

三.添加

1.添加页面

<body><center><h1>添加员工</h1></center><div><form action="AddEmp" method="post"><table align="center" cellspacing="0" border="1" width="500"><tr><th>所属部门:</th><td><select name="DeptId"><option value="0">--请选择--</option>@foreach (var imte in ViewBag.info){<option value="@imte.DeptId">@imte.DeptName</option>}</select></td></tr><tr><th>员工姓名:</th><td><input type="text" name="EmpName" value="" /></td></tr><tr><th>员工电话:</th><td><input type="text" name="EmpPhone" value="" /></td></tr><tr><th>所在地区:</th><td><input type="text" name="EmpArea" value="" /></td></tr><tr><th>员工薪资:</th><td><input type="text" name="EmpSalary" value="" /></td></tr><tr><td colspan="2" align="center"><input type="submit" name="name" value="添加员工" /></td></tr></table></form></div>
</body>

2.Home控制器中的AddEmp方法与AddEmpFrom方法

//添加员工页面显示public ActionResult AddEmpFrom(){ViewBag.info = db.Dept;return View();}//添加员工public ActionResult AddEmp(){Employee emp = new Employee(){DeptId = int.Parse(Request["DeptId"]),EmpName = Request["EmpName"],EmpPhone = Request["EmpPhone"],EmpArea = Request["EmpArea"],EmpSalary =decimal.Parse(Request["EmpSalary"])};db.Employee.Add(emp);int i = db.SaveChanges();if (i>0){return Content("<script>alert('添加成功');window.location.href='Index';</script>");}else{return Content("<script>alert('添加失败');window.location.href='AddEmpFrom';</script>");}}

3.运行结果

三.删除

1.Home控制器中的DeleteEmp方法

//删除员工
//简单写法以注释public ActionResult DeleteEmp(){int empid = int.Parse(Request["EmpId"]);//var emp = db.Employee.Find(empid);//db.Employee.Remove(emp);//int i = db.SaveChanges();string sql = "delete from Employee where EmpId = @EmpId";SqlParameter parameter = new SqlParameter("@EmpId", empid);int i = db.Database.ExecuteSqlCommand(sql, parameter);if (i > 0){return Content("<script>alert('删除成功');window.location.href='Index';</script>");}else{return Content("<script>alert('删除失败');window.location.href='Index';</script>");}}

2.运行结果

四.修改

1.修改页面

<body><center><h1>编辑员工</h1></center><div><form action="ExcistEmp" method="post"><input type="hidden" name="EmpId" value="@ViewBag.empinfo.EmpId" /><table align="center" cellspacing="0" border="1" width="500"><tr><th>所属部门:</th><td><select name="DeptId"><option value="0">--请选择--</option>@foreach (var item in ViewBag.info){<option value="@item.DeptId">@item.DeptName</option>}</select></td></tr><tr><th>员工姓名:</th><td><input type="text" name="EmpName" value="@ViewBag.empinfo.EmpName" /></td></tr><tr><th>员工电话:</th><td><input type="text" name="EmpPhone" value="@ViewBag.empinfo.EmpPhone" /></td></tr><tr><th>所在地区:</th><td><input type="text" name="EmpArea" value="@ViewBag.empinfo.EmpArea" /></td></tr><tr><th>员工薪资:</th><td><input type="text" name="EmpSalary" value="@ViewBag.empinfo.EmpSalary" /></td></tr><tr><td colspan="2" align="center"><input type="submit" name="name" value="修改员工" /></td></tr></table></form></div>
</body>

2.Home控制器中的ExcistEmpFrom方法和ExcistEmp

//编辑员工页面显示public ActionResult ExcistEmpFrom(){int empid = int.Parse(Request["EmpId"]);ViewBag.empinfo = db.Employee.Find(empid);ViewBag.info = db.Dept;return View();}
//编辑员工public ActionResult ExcistEmp(){int empid = int.Parse(Request["EmpId"]);var emp = db.Employee.Find(empid);emp.DeptId = int.Parse(Request["DeptId"]);emp.EmpName = Request["EmpName"];emp.EmpPhone = Request["EmpPhone"];emp.EmpArea = Request["EmpArea"];emp.EmpSalary = decimal.Parse(Request["EmpSalary"]);int i = db.SaveChanges(); if (i > 0){return Content("<script>alert('编辑成功');window.location.href='Index';</script>");}else{return Content("<script>alert('编辑失败');window.location.href='Index';</script>");}}

3.运行结果

五.登录

1.先在配置文件Web.config找到

<system.web>

<compilation debug="true" targetFramework="4.5" />

<httpRuntime targetFramework="4.5" />

</system.web>在里面写

<authentication mode="Forms">
<forms loginUrl="~/Account/LogOn" timeout="3000"></forms>

</authentication>。配图如下:

2.在Controllers文件夹里建AccountController控制器

3.在所建项目中添加文件夹Filter,在文件夹Filter添加类MyExceptionFilter.cs里面后继承 HandleErrorAttribute类,重写HandleErrorAttribute类里的OnException方法

代码如下:

//引用using System.Web.Mvc;命名空间
//MyExceptionFilter类继承HandleErrorAttribute类
//重写HandleErrorAttribute类里的OnException方法public class MyExceptionFilter : HandleErrorAttribute{public override void OnException(ExceptionContext filterContext){filterContext.Result = new RedirectResult("~/Account/LogOut");filterContext.ExceptionHandled = true;return;}}

4.HomeController控制器控制器下的Index页面是整个项目的首页,不需要登录就可以查看

代码如下:

<body><div>首页@Html.ActionLink("登录", "LogOn", "Account")@Html.ActionLink("员工查询", "Index", "Account")@Html.ActionLink("退出", "LogOut", "Account")</div>
</body>

页面效果图

5.在AccountController控制器里面添加LogOn,LogOut页面 。AccountController控制器里面Index页面是登录之后才能看到的页面。三个页面代码如下:

(1)LogOn页面里需要引用语法@model (项目名称).Models.(数据库里的表名)

例:@model MVC登录.Models.UserInfo

@model MVC登录.Models.UserInfo
<body><div style="text-align:center">@using (Html.BeginForm()){<table width="500" cellspacing="0" border="1" align="center"><tr><td colspan="3" align="center">用户登录</td></tr><tr><td>用户名:</td><td>@Html.TextBoxFor(u => u.UserName)</td><td style="color:red">@Html.ValidationMessageFor(u => u.UserName)</td></tr><tr><td>密码:</td><td>@Html.PasswordFor(u => u.Password)</td><td style="color:red">@Html.ValidationMessageFor(u => u.Password)</td></tr><tr><td colspan="3" align="center"><input type="submit" value="登录" /></td></tr><tr><td colspan="3" style="color:red">@Html.ValidationSummary(true)</td></tr></table>}</div>
</body>

页面效果图

(2)LogOut页面

<body><div>@Html.ActionLink("首页", "Index", "Home")<div><img src="~/Img/2022-05-20_113017.png" width="100%" /></div></div>
</body>

(3.Index页面

<div> 用户设置@Html.ActionLink("主页","Index","Home")</div>

6.在Models数据模型Model1.edmx下的Model1.tt里面找UserInfo.cs类,给属性添加验证

代码如下:

    using System.ComponentModel.DataAnnotations;public partial class UserInfo{public int UserId { get; set; }[Required(ErrorMessage = "用户名不能为空")]public string UserName { get; set; }[Required(ErrorMessage = "密码不能为空")][DataType(DataType.Password)]public string Password { get; set; }}

7.在AccountController控制器里面添加LogOn,LogOut,Index方法

三个方法代码如下:

 public class AccountController : Controller{// GET: AccountMVCLession31Entities db = new MVCLession31Entities();//登录之后才能看到的页面[Authorize]public ActionResult Index(){//ViewBag.info = db.Employee;ViewBag.info = from e in db.Employeejoin  d in db.Dept on e.DeptId equals d.DeptIdselect new EmpViewForm{EmpId = e.EmpId,DeptName = d.DeptName,EmpName = e.EmpName,EmpPhone =e.EmpPhone,EmpArea = e.EmpArea,EmpSalary =e.EmpSalary};return View();}//登录页面public ActionResult LogOn(){return View();}//在post表单请求下执行的登录方法[HttpPost]public ActionResult LogOn(UserInfo u){if (ModelState.IsValid && ValidateUser(u.UserName, u.Password)){//添加票证FormsAuthentication.SetAuthCookie(u.UserName, false);return RedirectToAction("Index");}ModelState.AddModelError("", "账号或者密码错误");return View();}//与数据库连接的方法private bool ValidateUser(string name, string pwd){using (MVCLession31Entities db = new MVCLession31Entities()){var u = (from p in db.UserInfo where p.UserName == name && p.Password == pwd select p).FirstOrDefault();if (u == null){return false;}else{return true;}}}[MyExceptionFilter]//退出页面public ActionResult LogOut(){FormsAuthentication.SignOut();return View();}

8.运行视频

运行结果

用MVC写的查询,添加,删除,修改,登录。相关推荐

  1. SQL语句添加删除修改字段

    用SQL语句添加删除修改字段 1.增加字段      alter table docdsp    add dspcode char(200) 2.删除字段      ALTER TABLE table ...

  2. 用SQL语句添加删除修改字段、一些表与字段的基本操作、数据库备份等

    用SQL语句添加删除修改字段 1.增加字段 alter table docdsp add dspcode char(200) 2.删除字段 ALTER TABLE table_NAME DROP CO ...

  3. 用SQL语句添加删除修改字段及一些表与字段的基本操作 .

    用SQL语句添加删除修改字段及一些表与字段的基本操作 分类: MS SQL 2009-07-02 14:41 222人阅读 评论(0) 收藏 举报 用SQL语句添加删除修改字段 1.增加字段      ...

  4. [转载]用SQL语句添加删除修改字段

    原文地址:用SQL语句添加删除修改字段作者:天涯草 用SQL语句添加删除修改字段 1.增加字段      alter table docdsp    add dspcode char(200) 2.删 ...

  5. mysql删除字段sql语句_用SQL语句添加删除修改字段

    用SQL语句添加删除修改字段 1.增加字段 alter table docdsp add dspcode char(200) 2.删除字段 ALTER TABLE table_NAME DROP CO ...

  6. Js操作表格-对表格单元格的添加删除修改

    动态表格 动态表格彻底研究 对表格单元格的添加删除修改并对其进行移动以及拷贝等操作,是目前应用开发中常用的技术 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4 5 55 5 6 6 6 ...

  7. mysql修改字段结构_MySQL修改表结构及其添加删除修改字段功能

    MySQL修改表结构添加删除修改字段 创建数据库CREATE DATABASE database_name 创建表CREATE TABLE `user` ( `id` int(11) unsigned ...

  8. sqlserverdatasouce控件如何让添加删除修改自动化

    对于sqlserverdatasouce控件,添加插入修改和删除命令,可以自动删除修改更新数据,不需要编写一行代码,但是有时更新失败,原因在于选中了[开放式并发],这个选中,如果该表与其他的数据表关联 ...

  9. Repeater控件中添加删除修改按钮

    1: <asp:LinkButton ID="LinkButton1" runat="server" CommandArgument='<%#Eva ...

最新文章

  1. linux上传下载文件
  2. 详测 Generics Collections TStack(1): Push、Pop、Peek - 其他功能同 TQueue
  3. 寻找是生命中的另一场迷失
  4. 刘强东发新年信:过去一年我们异常艰难
  5. JS去除数组中重复的值(四种方法)
  6. vos3000 2.1.1.5 安装包及注册机【电销电话机器人源码私有云部署 www.ruikesoft.com 正版授权 抵制盗版】
  7. 数据同步工具:Canal
  8. Soft-Masked-Bert网络细节解读
  9. 利用SPI驱动12864液晶
  10. java基础练习题(for,switch,while,基本数据类型和引用数据类型的联系)
  11. AVL树的理解及自写AVL树
  12. 前端入门学习笔记十九
  13. 《Python深度学习》Chapter 2——神经网络的数学基础
  14. 前端工程师的摸鱼日常(14)
  15. 自助建站系统哪个好?
  16. Java——求数组平均值
  17. java quartz配置_java quartz简单使用
  18. 动画程序时长缩放是什么意思_Pr预设:2000种文字标题排版指示线图形动画无缝转场剪辑工具包...
  19. HY-1C L2A数据 几何校正
  20. Oracle NLSSORT 拼音排序 笔画排序 部首排序

热门文章

  1. Word 2010 找不到 Endnote选项
  2. 【转】RFire系列免杀教程
  3. Python采集全国各地百度地图上店铺POI数据(母婴、美食等)
  4. NASA电池数据集内容说明
  5. 爬取腾讯新闻中省份疫情数据到Mysql数据库
  6. 使用C#实现DHT磁力搜索的BT种子后端管理程序+数据库设计(开源)
  7. 利用 sqlplus spool 实现oracle 导出 csv 文件
  8. 自动生成sitemap地图PHP代码
  9. 查询选修相同课程的学生学号、课程号和成绩
  10. 基于OpenCV的实时车道线分割&车道保持系统(源码&教程)