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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • nmap 使用注意事项

    nmap 使用注意事项

    2022年1月7日
  • java大一期末试卷含答案

    java大一期末试卷含答案答案是自己写的,不敢保证全对若有不正之处,请多多谅解并欢迎指正。一、单项选择题1.公有类型常量定义(publicstaticfinal三个关键字的含义)。访问控制符public能被所有的类访问static静态的被static修饰的变量为类变量/静态变量。静态变量又称为类的成员变量,在类中是全局变量,可以被类中的所有方法调用。final最终的被final修饰的变量为常…

    2022年7月13日
  • RadControls for ASP.NET Ajax 笔记(1)

    RadControls for ASP.NET Ajax 笔记(1)(1)遍历Grid中的所有Item(一行),一次仅展开一行【Singleexpandinhierarchicalgrid】privatevoidRadGrid1_ItemCommand(objectsource,Telerik.Web.UI.GridCommandEventArgse){if(e.CommandName==RadGrid.ExpandCo…

    2022年7月19日
  • 图像尺度空间理论_金字塔内部空间有多大

    图像尺度空间理论_金字塔内部空间有多大文章目录尺度空间什么是尺度空间(scalespace)为什么需要尺度空间高斯核图像金字塔什么是分辨率为什么需要多分辨率多尺度和多分辨率图像金字塔高斯金字塔SIFTOctavesandScalesBlurringAmountofblurring参考尺度空间什么是尺度空间(scalespace)图像的尺度是指图像内容的粗细程度。尺度的概念是用来模拟观察者距离物体的远近的程度。具体…

    2022年10月14日
  • flowable camunda activiti 功能对比

    flowable camunda activiti 功能对比flowablecamundaactiviti三个框架都是从jbpm框架诞生出来的,先是有jbpm4,然后出来了一个activiti5,activiti5发展一段时间,又出来了一个Camunda。activiti5发展了4年,紧接着出来了一个flowable。本文重点对flowablecamunda两个框架的功能对比。对比的camunda版本是7.10.0,flowable框架的版本…

    2022年5月21日
  • springbean生命周期通俗一点_spring为啥是单例模式

    springbean生命周期通俗一点_spring为啥是单例模式一、Spring核心模块介绍1.SpringCore:Core封装包是框架的最基础部分,提供IOC和依赖注入特性。这里的基础概念是BeanFactory,它提供对Factory模式的经典实现来消除对程序性单例模式的需要,并真正地允许你从程序逻辑中分离出依赖关系和配置。2.SpringContext:构建于Core封装包基础上的Context封装包,提供了一种框架式的对象访问方法,有些象JNDI注册器。Context封装包的特性得自于Beans封装包,并添加了对国际化(I18N).

    2022年9月18日

发表回复

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

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