MVC对数据库增删改查,使用实体模型
来源:互联网 发布:mac 设置的快捷方式 编辑:程序博客网 时间:2024/06/09 19:26
使用了MVC之后,对数据库的操作变得简单多了。创建MVC后,在model层添加一个ADO.NET实体数据模型。对应于我们要操作的数据库的表。
在控制器编写如下代码,注意一个控制器应对应于一个视图,如果一个视图对应于两个控制器,那么在行为前加上[HttpPost],那么此行为为post时执行。默认为GET。
DbContext为上下文对象,很重要的一个要记住的类。我们新建的实体数据模型名为 Database1Entities;
public ActionResult Index(){
DbContext db = new Database1Entities();//子类赋值给父类
IQueryable<Table> t1 = db.Set<Table>();//将所有数据传入
return View(t1);//返回到VIEW中
}
//控制器所有代码如下
using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using crud.Models;
using System.Data.Entity.Migrations;
using System.Web.Routing;
namespace crud.Controllers
{
public class CRUDController : Controller
{
//
// GET: /CRUD/
public ActionResult Index()
{
DbContext db = new Database1Entities();
IQueryable<Table> t1 = db.Set<Table>();
return View(t1);
}
public ActionResult create()
{
return View();
}
[HttpPost]
public ActionResult create(Table t1)
{
DbContext db = new Database1Entities();
db.Set<Table>().Add(t1);
int res= db.SaveChanges();
if (res>0)
{
return Redirect(@Url.Action("index","crud"));
}
else
{
return Redirect(@Url.Action("create","crud"));
}
}
public ActionResult delete(int Id)
{
DbContext db = new Database1Entities();
var deleteVal = db.Set<Table>().Where(u => u.Id == Id).FirstOrDefault();
db.Set<Table>().Remove(deleteVal);
int res=db.SaveChanges();
if (res>0 )
{
return Redirect(@Url.Action("INDEX","CRUD"));
}
else
{
return Redirect(@Url.Action("", ""));
}
}
public ActionResult change(int Id)
{
DbContext db = new Database1Entities();
ViewData.Model=db.Set<Table>().Where(u=>u.Id==Id).FirstOrDefault();
//IQueryable<Table> iq = db.Set<Table>().Where(u => u.Id == Id);
return View();
}
[HttpPost]
public ActionResult change(Table table)
{
DbContext db = new Database1Entities();
IQueryable<Table> iq = db.Set<Table>().Where(u => u.Id == table.Id);
db.Set<Table>().AddOrUpdate(table);
db.SaveChanges();
return Redirect(@Url.Action("index","CRUD"));
}
}
}
//VIEW代码如下
@using crud.Models
@model IQueryable< crud.Models.Table>
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Index</title>
</head>
<body>
<div>
@Html.ActionLink("Add", "create", "CRUD");
<br />
<table border="1">
<tr>
<th>id</th>
<th>username</th>
<th>delete</th>
</tr>
@foreach (Table table in Model)
{
<tr>
<td>@table.Id</td>
<td>@table.username</td>
<td>@Html.ActionLink("delete", "delete", "CRUD", new RouteValueDictionary(new {Id=@table.Id}),null)</td>
<td>@Html.ActionLink("change","change","CRUD",new RouteValueDictionary(new {Id= @table.Id}),null)</td>
</tr>
}
</table>
</div>
</body>
</html>
//创建代码如下
@model crud.Models.Table
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>create</title>
</head>
<body>
<div>
@using (Html.BeginForm("create", "crud", FormMethod.Post))
{
<span>username</span>
@Html.TextBoxFor(u => u.username)
<br />
<input type="submit" value="Click" />
}
</div>
</body>
</html>
//修改代码如下
@model crud.Models.Table
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>change</title>
</head>
<body>
<div>
@using (Html.BeginForm("change", "crud", FormMethod.Post))
{
@Model.Id
@Html.HiddenFor(n => n.Id)
@Html.TextBoxFor(n=>n.username)
<input type="submit" value="change" />
}
</div>
</body>
</html>
完成
- MVC对数据库增删改查,使用实体模型
- C#实体模型增删改查
- django模型类对数据库进行增删改查
- ThinkPHP 的模型使用对数据库增删改查(五)
- 一个使用ibatis对数据库增删改查的例子
- 使用MyEclipse对MongoDB数据库 进行增删改查操作
- 使用FMDB对数据库实现增删查改
- 使用jdbc对MySQL数据库进行增删改查
- java使用反射实现对数据库的增删改查
- 使用Statement对数据库进行增删改查
- 使用Hibernate对数据库进行增删改查
- 使用MyBatis框架实现对数据库增删改查
- ASP.NET中实体数据库模型的增删改查的用法。
- MVC模式增删改查mysql 数据库
- JS对数据库进行增删改查
- 对mysql数据库的增删改查
- 对数据库进行增删改查操作
- Django 对数据库进行增删改查
- Eclipse项目上存在红叉 Problems出现errors:Target runtime XXX is not defined
- Spring Boot(一):添加任务管理的解决办法
- 解决EntityFrameworkCore “无法将“Add-Migration”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。”
- B
- ArrayList的简单应用,数组之间的转换。
- MVC对数据库增删改查,使用实体模型
- Linux出现sudo ln -s /lib/x86_64-linux-gnu/libssl.so.1.0.0 /usr/local/lib/libssl.so.1.0.0
- 【miscellaneous】Winserver2012安装后无法进入桌面
- SpringMvc跨域
- Sqoop架构介绍及搭建流程简介
- 编程练习——字符串分割
- 小白学tkinter(Label(标签)组件)
- 关于第一次学习机器学习的摘要
- 定时触发活动的设置方法