ASP.NET MVC-api增删改查

ASP.NET MVC-api增删改查使用ASP.NETMVC-api技术实现对数据库的增删改查创建mvcapi项目创建完毕后的目录添加模型类接着在models文件夹添加实体数据模型,引入EF数据库,具体方法参考我之前的EF文章。然后在models中添加两个类,用于反馈操作是否成功。error类publicclassError{///<summary>///错误返回对象<br/>///exp:<br/>

大家好,又见面了,我是你们的朋友全栈君。

使用ASP.NET MVC-api技术实现对数据库的增删改查

创建mvc api项目

创建完毕后的目录

创建完成
添加模型类

接着在models文件夹添加实体数据模型,引入EF数据库,具体方法参考我之前的EF文章。
在这里插入图片描述
然后在models中添加两个类,用于反馈操作是否成功。
error类

    public class Error
    { 
   
        /// <summary>
        /// 错误返回对象<br />
        /// exp:<br />
        /// 登录错误<br/ >
        /// 数据库连接失败<br />
        /// </summary>
        /// <param name="message"></param>
        public Error(string message)
        { 
   
            this.code = -1;
            this.message = message;
            this.result = null;
        }

        public int code { 
    get; set; }
        public string message { 
    get; set; }
        public object result { 
    get; set; }
    }

success类

    public class Success
    { 
   
        /// <summary>
        /// 成功返回对象<br/>
        /// exp:<br/>
        /// 登陆成功
        /// </summary>
        /// <param name="message"></param>
        /// <param name="result"></param>
        public Success(string message, object result)
        { 
   
            this.code = 200;
            this.message = message;
            this.result = result;
        }

        public int code { 
    get; set; }
        public string message { 
    get; set; }
        public object result { 
    get; set; }

    }

配置api
在App_Start文件夹的WebApiConfig.cs文件里边配置。

			// Web API 配置和服务
            GlobalConfiguration.Configuration.Formatters.XmlFormatter.SupportedMediaTypes.Clear();

修改访问路径以方便测试访问

api/{controller}/{action}/{id}

接下来进入正题,新建Test控制器

查询所有

		[HttpGet]
        public object GetInfo()
        { 
   
            using(rj190xEntities db = new rj190xEntities())
            { 
   
                return new Success("查询成功", db.girl1907.ToList());
            }
        }

在postman中测试

{ 
   
    "code": 200,
    "message": "查询成功",
    "result": [
        { 
   
            "id": "15FF969B178B42D698F7162F7A56C90D",
            "createDate": "2021-06-11T09:20:02.757",
            "nickName": "111",
            "introduce": "111"
        },
        { 
   ...}
}

添加

        [HttpPost]
        public object AddInfo(string nickName,string introduce)
        { 
   
            if (string.IsNullOrEmpty(nickName)||string.IsNullOrEmpty(introduce))
            { 
   
                return new Error("参数不允许为空!");
            }
            girl1907 g = new girl1907();
            g.id = System.Guid.NewGuid().ToString("N");
            g.createDate = DateTime.Now;
            g.nickName = nickName;
            g.introduce = introduce;
            using (rj190xEntities db = new rj190xEntities())
            { 
   
                db.girl1907.Add(g);
                int rows = db.SaveChanges();
                if (rows>0)
                { 
   
                    return new Success("添加成功!", g.id);
                }
                else
                { 
   
                    return new Error("添加失败");
                }
            }
        }

测试

{ 
   
    "code": 200,
    "message": "添加成功!",
    "result": "20f5dc112e494c349db90ccd561bc96c"
}

删除

        [HttpPost]
        public object DeleteById(string id)
        { 
   
            if (string.IsNullOrEmpty(id))
            { 
   
                return new Error("id为空!");
            }
            using (rj190xEntities db = new rj190xEntities())
            { 
   
                girl1907 g = db.girl1907.Where(o => o.id == id).SingleOrDefault();
                if (g==null)
                { 
   
                    return new Error("没有此用户!");
                }
                db.girl1907.Remove(g);
                int rows = db.SaveChanges();
                if (rows>0)
                { 
   
                    return new Success("删除成功!", g.id);
                }
                else
                { 
   
                    return new Error("删除失败");
                }
            }
        }

测试

{ 
   
    "code": 200,
    "message": "删除成功!",
    "result": "8ffea198c8ca4bb187229a90e24ac865"
}

精准查询

        [HttpGet]
        public object SelectById(string id)
        { 
   
            if (string.IsNullOrEmpty(id))
            { 
   
                return new Error("id为空!");
            }
            using (rj190xEntities db = new rj190xEntities())
            { 
   
                girl1907 g = db.girl1907.Where(o => o.id.Equals(id)).SingleOrDefault();
                if (g==null)
                { 
   
                    return new Error("没有此用户!");
                }
                return new Success("查询成功", g);
            }
        }

查询刚刚删除的用户测试

{ 
   
    "code": -1,
    "message": "没有此用户!",
    "result": null
}

修改

        [HttpPost]
        public object UpdateById(string id,string nickName,string introduce)
        { 
   
            if (string.IsNullOrEmpty(id)||string.IsNullOrEmpty(nickName)||string.IsNullOrEmpty(introduce))
            { 
   
                return new Error("参数为空!");
            }
            using (rj190xEntities db = new rj190xEntities())
            { 
   
                girl1907 g = db.girl1907.Where(o => o.id.Equals(id)).SingleOrDefault();
                if (g==null)
                { 
   
                    return new Error("没有此用户!");
                }
                g.nickName = nickName;
                g.introduce = introduce;
                int rows = db.SaveChanges();
                if (rows>0)
                { 
   
                    return new Success("修改成功!",g.id);
                }
                return new Error("修改失败!");
            }
        }

测试

{ 
   
    "code": 200,
    "message": "修改成功!",
    "result": "8ffea198c8ca4bb187229a90e24ac865"
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/162937.html原文链接:https://javaforall.net

(0)
上一篇 2022年7月21日 下午11:36
下一篇 2022年7月21日 下午11:36


相关推荐

  • 【项目实战】登录与注册业务的实现(前端+后端+数据库)

    【项目实战】登录与注册业务的实现(前端+后端+数据库)本示例基于 Vue js 和 mintUI 实现 目录一 数据库的创建二 后端接口与数据库的连接三 前端代码实现 1 注册页相关代码 2 注册页效果 3 登录页相关代码 4 登录页效果四 注册登录演示一 数据库的创建此处以 Navicat 软件进行创建 新建数据库 reg log sql 与数据表 reg log 为了实现注册业务 我们在数据库中设计 ID 用户名 密码 邮箱 电话号 5 个字段 创建结束后保存 便可

    2025年9月26日
    5
  • CodeForces 441 A. Valera and Antique Items

    CodeForces 441 A. Valera and Antique Items

    2022年1月9日
    40
  • 极大似然估计求解多项式分布参数

    极大似然估计求解多项式分布参数原因今天晚上 老师在看 LDA 数学八卦的时候 问我一个问题 如下图所示 这个多项式分布的参数 采用极大估计是怎么求的呢 当时想了想还真不知道 于是在网上找了资料 学习了一下 特此记录 公式推导很多情况下 假定一个变量 XX 有 kk 个状态 其中 k gt 2k gt 2 每个状态假定的可能性为 p1 p2 pkp 1 p 2 cdots p k 且 ki 1pi 1 sum i 1

    2026年3月18日
    2
  • 不止一个背包的背包问题_超级背包怎么使用方法

    不止一个背包的背包问题_超级背包怎么使用方法有 N 个物品和一个容量是 V 的背包。物品之间具有依赖关系,且依赖关系组成一棵树的形状。如果选择一个物品,则必须选择它的父节点。如下图所示:如果选择物品5,则必须选择物品1和2。这是因为2是5的父节点,1是2的父节点。每件物品的编号是 i,体积是 vi,价值是 wi,依赖的父节点编号是 pi。物品的下标范围是 1…N。求解将哪些物品装入背包,可使物品总体积不超过背包容量,且总价值最大。输出最大价值。输入格式第一行有两个整数 N,V,用空格隔开,分别表示物品个数和背包容量。接下来有 N

    2022年8月9日
    9
  • 即梦4.0超详细深度测评,可直接用的提示词

    即梦4.0超详细深度测评,可直接用的提示词

    2026年3月13日
    1
  • WPF Visifire 入门-动态曲线图[通俗易懂]

    WPF Visifire 入门-动态曲线图[通俗易懂]kagula2019-3-18这里用源代码的形式,示范如何画出一个最简单的动态曲线图。开发环境,Visualstudio2017CommunityUpdate5项目类型:WPFC#.NetFramework4.6.1本文适用对象:有两年没有开发C#WPF的程序员,通过这个示例可以快速回忆。下面是运行效果图,不停显示最新生成的十个数据点。让…

    2022年7月21日
    15

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号