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展示完毕。

相关文章
|
19天前
|
关系型数据库 数据库 网络虚拟化
Docker环境下重启PostgreSQL数据库服务的全面指南与代码示例
由于时间和空间限制,我将在后续的回答中分别涉及到“Python中采用lasso、SCAD、LARS技术分析棒球运动员薪资的案例集锦”以及“Docker环境下重启PostgreSQL数据库服务的全面指南与代码示例”。如果你有任何一个问题的优先顺序或需要立即回答的,请告知。
36 0
|
1月前
|
API Python
[gin]基于切片实现crud
[gin]基于切片实现crud
|
1月前
|
存储 开发框架 .NET
ASP.NET Web Api 使用 EF 6,DateTime 字段如何取数据库服务器当前时间
ASP.NET Web Api 使用 EF 6,DateTime 字段如何取数据库服务器当前时间
|
1月前
|
前端开发 Java 关系型数据库
通过HTML网页对mysql数据库进行增删改查(CRUD实例)
通过HTML网页对mysql数据库进行增删改查(CRUD实例)
159 0
|
2月前
|
Oracle 关系型数据库 Java
实时计算 Flink版操作报错合集之cdc postgres数据库,当表行记录修改后报错,该如何修改
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
2月前
|
SQL 监控 关系型数据库
实时计算 Flink版操作报错合集之在设置监控PostgreSQL数据库时,将wal_level设置为logical,出现一些表更新和删除操作报错,怎么办
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
2月前
|
关系型数据库 Java 数据库
实时计算 Flink版操作报错合集之flinksql采PG数据库时报错,该如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
2月前
|
关系型数据库 MySQL 数据库
实时计算 Flink版操作报错合集之在处理PostgreSQL数据库遇到报错。该如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
2月前
|
消息中间件 关系型数据库 数据库
实时计算 Flink版操作报错合集之在使用RDS数据库作为源端,遇到只能同步21个任务,是什么导致的
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
2月前
|
SQL 数据库 Python
Django框架数据库ORM查询操作(6)
【7月更文挑战第6天】```markdown Django ORM常用数据库操作:1) 查询所有数据2) 根据ID查询 3) 精确查询 4) 分页排序
55 1