ASP.NETMVC数据库完整CRUD操作示例

简介: ASP.NETMVC数据库完整CRUD操作示例



数据库

数据要求

添加测试数据

1、创建项目

依然创建的是【ASP.NETWeb】应用程序

选择MVC

创建完成

2、添加EF

添加【ADO.NET实体数据模型】

来自数据库的EF设计器

这里新建链接

添加数据库连接,这里测试数据库是本地数据库故而输入【.】

直接点击下一步

默认选择6.x

勾选引入实体模型,点击【完成】即可。

确认引入EF成功

需要使用的上下文对象

3、添加控制器

在【Controllers】中添加【控制器】

添加空【控制器】

输入控制器名称【Users】

使用【上下文对象】需要引入命名空间

【UsersController.cs】控制器代码

public class UsersController : Controller
{
    // GET: Users
    public ActionResult Index()
    {
        using (UsersDBEntities db = new UsersDBEntities()) {
            ViewBag.lists = db.users.ToList();
            return View();
        }
    }
}

4、添加视图

在函数名称上点击鼠标右键添加【添加视图】

点击【添加】,这里的视图名称是默认添加的。

视图页

视图代码

<h2>用户列表</h2>
<hr/>
<table>
    <tr>
        <th>编号</th>
        <th>昵称</th>
        <th>性别</th>
        <th>年龄</th>
        <th>简介</th>
    </tr>
    @foreach (var item in ViewBag.lists)
    {
        <tr>
            <td>@item.id</td>
            <td>@item.userName</td>
            <td>@item.sex</td>
            <td>@item.age</td>
            <td>@item.introduce</td>
        </tr>
    }
</table>

Ctrl+F5执行显示效果:没有样式,但是数据出来了。

5、修改与删除操作

视图代码

<h2>用户列表</h2>
<hr/>
<table>
    <tr>
        <th>编号</th>
        <th>昵称</th>
        <th>性别</th>
        <th>年龄</th>
        <th>简介</th>
        <th>操作</th>
    </tr>
    @foreach (var item in ViewBag.lists)
    {
        <tr>
            <td>@item.id</td>
            <td>@item.userName</td>
            <td>@item.sex</td>
            <td>@item.age</td>
            <td>@item.introduce</td>
            <td>
                <a href="~/Users/UpdateById?id=@item.id">修改</a>
                <a href="~/Users/Del?id=@item.id" onclick="return confirm('是否删除此行?')">删除</a>
            </td>
        </tr>
    }
</table>

后台代码

public ActionResult UpdateById(int id) {
    return View();
}
public ActionResult Del(int id)
{
    using (UsersDBEntities db = new UsersDBEntities())
    {
        users u = db.users.Where(o => o.id == id).SingleOrDefault();
        db.users.Remove(u);
        db.SaveChanges();
        return RedirectToAction("Index");
    }
}

由于没有修改页面的视图,故而需要添加

完成具体修改SelectById代码

public ActionResult UpdateById(int id) {
            using (UsersDBEntities db = new UsersDBEntities())
            {
                users u = db.users.Where(o => o.id == id).SingleOrDefault();
                ViewBag.user = u;
                return View();
            }
        }
        public ActionResult Del(int id)
        {
            using (UsersDBEntities db = new UsersDBEntities())
            {
                users u = db.users.Where(o => o.id == id).SingleOrDefault();
                db.users.Remove(u);
                db.SaveChanges();
                return RedirectToAction("Index");
            }
        }

添加【UpdateById】视图

修改视图代码

视图代码

<h2>修改</h2>
<hr/>
<form action="~/Users/UpdateInfo" method="post">
    <input type="text" name="id" value="@ViewBag.user.id" placeholder="请输入编号" readonly/>
    <input type="text" name="userName" value="@ViewBag.user.userName" placeholder="请输入用户名"/>
    <input type="text" name="sex" value="@ViewBag.user.sex" placeholder="请输入用户性别"/>
    <input type="text" name="age" value="@ViewBag.user.age" placeholder="请输入用户年龄"/>
    <input type="text" name="introduce" value="@ViewBag.user.introduce" placeholder="请输入用户简介"/>
    <input type="submit" value="修改"/>
</form>

添加【UpdateInfo】函数

public ActionResult UpdateInfo(users u) {
    using (UsersDBEntities db = new UsersDBEntities())
    {
        users old_u = db.users.Where(o => o.id == u.id).SingleOrDefault();
        old_u.userName = u.userName;
        old_u.sex = u.sex;
        old_u.age = u.age;
        old_u.introduce = u.introduce;
        db.SaveChanges();
        return RedirectToAction("Index");
    }
}

6、添加操作

<a href="~/Users/AddPage">添加</a>

添加【AddPage】函数以及【AddPageInfo】

public ActionResult AddPage() {
    return View();
}
public ActionResult AddPageInfo(string userName, string sex, int age, string introduce)
{
    using (UsersDBEntities db = new UsersDBEntities())
    {
        users u = new users();
        u.id = 0;
        u.userName = userName;
        u.sex = sex;
        u.age = age;
        u.introduce = introduce;
        db.users.Add(u);
        db.SaveChanges();
        return RedirectToAction("Index");
    }
}

添加【AddPage】的视图

添加【视图】

添加【视图】代码

<h2>AddPage</h2>
<hr />
<form action="~/Users/AddPageInfo" method="post">
    <input type="text" name="userName" placeholder="请输入用户名" />
    <input type="text" name="sex" placeholder="请输入用户性别" />
    <input type="text" name="age" placeholder="请输入用户年龄" />
    <input type="text" name="introduce" placeholder="请输入用户简介" />
    <input type="submit" value="添加" />
</form>

完整功能示例

添加视图

添加成功

修改操作

修改成功

删除功能

删除成功

CRUD展示完毕。

相关文章
|
2月前
|
SQL 开发框架 .NET
ASP.NET连接SQL数据库:详细步骤与最佳实践指南ali01n.xinmi1009fan.com
随着Web开发技术的不断进步,ASP.NET已成为一种非常流行的Web应用程序开发框架。在ASP.NET项目中,我们经常需要与数据库进行交互,特别是SQL数据库。本文将详细介绍如何在ASP.NET项目中连接SQL数据库,并提供最佳实践指南以确保开发过程的稳定性和效率。一、准备工作在开始之前,请确保您
245 3
|
19天前
|
JSON JavaScript 关系型数据库
node.js连接GBase 8a 数据库 并进行查询代码示例
node.js连接GBase 8a 数据库 并进行查询代码示例
|
2月前
|
数据可视化 API PHP
学生信息管理系统-可视化-科目管理CRUD代码生成器
学生信息管理系统-可视化-科目管理CRUD代码生成器
45 5
|
2月前
|
SQL 开发框架 .NET
ASP连接SQL数据库:从基础到实践
随着互联网技术的快速发展,数据库与应用程序之间的连接成为了软件开发中的一项关键技术。ASP(ActiveServerPages)是一种在服务器端执行的脚本环境,它能够生成动态的网页内容。而SQL数据库则是一种关系型数据库管理系统,广泛应用于各类网站和应用程序的数据存储和管理。本文将详细介绍如何使用A
85 3
|
2月前
|
NoSQL 前端开发 MongoDB
前端的全栈之路Meteor篇(三):运行在浏览器端的NoSQL数据库副本-MiniMongo介绍及其前后端数据实时同步示例
MiniMongo 是 Meteor 框架中的客户端数据库组件,模拟了 MongoDB 的核心功能,允许前端开发者使用类似 MongoDB 的 API 进行数据操作。通过 Meteor 的数据同步机制,MiniMongo 与服务器端的 MongoDB 实现实时数据同步,确保数据一致性,支持发布/订阅模型和响应式数据源,适用于实时聊天、项目管理和协作工具等应用场景。
|
3月前
|
前端开发 IDE 数据库连接
ThinkPHP6 模型层的模型属性,表映射关系,以及如何在控制层中使用模型层和模型层中的简单CRUD
本文详细介绍了ThinkPHP6中模型层的使用,包括模型属性设置、表映射关系、以及如何在控制层中使用模型层进行CRUD操作。
ThinkPHP6 模型层的模型属性,表映射关系,以及如何在控制层中使用模型层和模型层中的简单CRUD
|
2月前
|
SQL 开发框架 .NET
ASP.NET连接SQL数据库:实现过程与关键细节解析an3.021-6232.com
随着互联网技术的快速发展,ASP.NET作为一种广泛使用的服务器端开发技术,其与数据库的交互操作成为了应用开发中的重要环节。本文将详细介绍在ASP.NET中如何连接SQL数据库,包括连接的基本概念、实现步骤、关键代码示例以及常见问题的解决方案。由于篇幅限制,本文不能保证达到完整的2000字,但会确保
|
3月前
|
关系型数据库 数据库 网络虚拟化
Docker环境下重启PostgreSQL数据库服务的全面指南与代码示例
由于时间和空间限制,我将在后续的回答中分别涉及到“Python中采用lasso、SCAD、LARS技术分析棒球运动员薪资的案例集锦”以及“Docker环境下重启PostgreSQL数据库服务的全面指南与代码示例”。如果你有任何一个问题的优先顺序或需要立即回答的,请告知。
75 0
|
4月前
|
API Python
[gin]基于切片实现crud
[gin]基于切片实现crud
|
4月前
|
存储 开发框架 .NET
ASP.NET Web Api 使用 EF 6,DateTime 字段如何取数据库服务器当前时间
ASP.NET Web Api 使用 EF 6,DateTime 字段如何取数据库服务器当前时间