wenapi做了一个从数据库增删改查的项目

webapi

 1.创建项目:visual C# —> ASP.NET MVC 4 web应用程序 模板—>web api;

 

2.注册路由:

  

  路由表中的每一个条目都包含一个路由模板。这个Web API默认的路由模版是"api/{controller}/{id}"。在这个模版中,“api”是一个文字式路径片段,而{controller}和{id}则是占位符变量。

  当Web API框架接收一个HTTP请求时,它会试图根据路由表中的一个路由模板来匹配其URI。如果无路由匹配,客户端会接收到一个404(未找到)错误。

3.linq to sql连接数据库

  1.建立数据库建表

  2.在models文件夹里面新建linq to sql类文件

  3.工具->连接到数据库

  4.将要用的表拖入设计区

  

5.获取数据库Getway。"linq to sql class"文件名+Datacontext实例化这个对象,数据表就会映射到一个集合属性中,personDataDataContext db = new personDataDataContext();

6.增删改查

  

  public Boolean Post([FromBody]UserInfo userInfo)   {   

    personDataDataContext db = new personDataDataContext();

    var s1 = new test2   

    {   

      UserName =userInfo.UserName,   Id=userInfo.Id,   Age=userInfo.Age   

    };

    if (db.test2.SingleOrDefault<test2>(s => s.Id == userInfo.Id) == null)   

      {   

        db.test2.InsertOnSubmit(s1);   

        db.SubmitChanges();   

        return true;   

      }   else {   

        return false;   

      }   }

  :

  public bool Delete(int id)   

  {   

    personDataDataContext db = new personDataDataContext();   

    var deleteperson = db.test2.SingleOrDefault<test2>(s => s.Id == id);   

    if (deleteperson == null)   

    {   

      return false;   

    }   else {   

       db.test2.DeleteOnSubmit(deleteperson);   

       db.SubmitChanges();   

       return true;   

      }     }

  :    

  public Boolean Put(int id, [FromBody]UserInfo userInfo)   

  {   

    personDataDataContext db = new personDataDataContext();   

    var editperson = db.test2.SingleOrDefault<test2>(s => s.Id == userInfo.Id);   

    if (editperson == null)   

    {   

      return false;   

    }   else {   

       editperson.Age = userInfo.Age;   

       editperson.UserName = userInfo.UserName;   

       db.SubmitChanges();   

       return true;   

    }   

  查:

  public IEnumerable<test2> Get()   

  {   

    personDataDataContext db = new personDataDataContext();   

    var query = from s in db.test2    

    orderby s.UserName   

    select s;   

    return query;   

  }

  // GET api/values/5   

  public string Get(int id)   

  {   

    return "value";   

  }

  这里我新建了一个userinfo类

  public class UserInfo   {     public string UserName { get; set; }     public int Id { get; set; }     public int Age { get; set; }   }

  用来接收前端页面ajax请求中的data数据,s => s.Id == userInfo.Id是lamda表达式创建委托方法意思是在db.test2的person集合中查找某个person的Id与userinfo接收到的id相等的person对象

前端页面部分

  

@{     Layout = null; }

<!DOCTYPE html>

<html>

<head>

<meta name="viewport" content="width=device-width" />

<title>index</title>

<link href="~/CSS/bootstrap.css" rel="stylesheet" />

<script src="~/Scripts/jquery-1.11.3.min.js"></script>

<script src="~/Scripts/bootstrap.js"></script>

<script src="~/Scripts/sweetalert-dev.js"></script>

<script src="~/Scripts/sweetalert.min.js"></script>

<script src="~/Scripts/table.js"></script>

<link href="~/CSS/sweetalert.css" rel="stylesheet" />

<link href="~/CSS/table.css" rel="stylesheet" />

</head>

<body>

<div>

<input type="button" data-toggle="modal" href="#modal-login" class="btn btn-success btn-primary btn-lg btn-block" value="增加" />

</div>

<table id="table" class="table table-hover table-bordered">

<thead>

<tr class="active">

<th>用户名</th>

<th>工号</th>

<th>年龄</th>

<th>操作</th>

</tr>

</thead>

<tbody></tbody>

</table>

<!---------------------------------------------模态框------------------------------------------------>

<div id="modal-login" class="modal fade">

<!--半透明遮罩-->

<div class="modal-dialog">

<!--宽、定位-->

<div class="modal-content">

<!--背景色、边框、阴影-->

<div class="modal-header">

<span data-dismiss="modal" class="close">&times;</span>

<h3 class="modal-title">用户信息添加</h3>

</div>

<div class="modal-body">

<form>

<div class="form-group">

<label for="uname">用户名:</label>

<input class="form-control" id="uname" type="text" />

</div>

<div class="form-group">

<label for="uid">工号:</label>

<input class="form-control" id="uid" type="text" />

</div>

<div class="form-group">

<label for="upwd">年龄:</label>

<input class="form-control" id="uage" type="text" />

</div>

</form>

</div>

<div class="modal-footer">

<input id="submitData" class="btn btn-success" type="button" value="提交" />

<input id="cancel" data-dismiss="modal" class="btn btn-danger" type="button" value="取消" />

</div>

</div>

</div>

</div>

</body>

</html>

js文件:

$(function () {

$.ajax({

type: "GET",

url: "/api/Values",

data: {},

success: function (data) {

for (var i = 0; i < data.length; i++) {

var $info = $("<tr><td>" + data[i].UserName + "</td><td>" + data[i].Id + "</td><td>" + data[i].Age + "</td><td><input type='button' class='btn btn-warning btn-lg' id='btnPutUserInfo' data-toggle='modal' href='#modal-login' href='#modal-login' value='修改' /><input type='button' class='btn btn-danger btn-lg delete' value='删除'/></td></tr>");

$("#table>tbody").append($info);

}

}

})

//绑定post按钮点击事件 $("#submitData").click(function (e) {

if (e.target.value !== '修改') { console.log(e.target.value !== '修改'); console.log(e.target.value)

var uname = document.getElementById("uname");

var uid = document.getElementById("uid");

var uage = document.getElementById("uage");

if (uid.value === null) { return false }

$.ajax({

type: "POST",

url: "/api/Values",

data: { "Id": uid.value, "Age": uage.value, "UserName": uname.value },

success: function (data) {

if (data == true) {

swal("添加成功!","", "success");

} else {

swal("添加失败!","","error");

}                     $(".confirm").click(function () { window.location.reload(); })

}

})

}

})

//绑定修改和删除事件 $("table").on('click', function (e) {

if (e.target.value == '删除') { swal({

title: "您确定要删除吗?",  text: "您确定要删除这条数据?",  type: "warning",

showCancelButton: true,

closeOnConfirm: false,

confirmButtonText: "是的,我要删除", confirmButtonColor: "#ec6c62"

}, function() {

$.ajax({

type: "DELETE",

url: "/api/Values/" + e.target.parentNode.parentNode.firstChild.nextSibling.innerHTML,

data: {},

}).done(function (data) {

swal("操作成功!", "已成功删除数据!", "success");

$(".confirm").click(function () { window.location.reload(); })

}).error(function(data) {

swal("OMG", "删除操作失败了!", "error");

$(".confirm").click(function () { window.location.reload(); })

});             });

} else if (e.target.value == '修改') {

      try { $("#submitData")[0].id = "submitChange" }

catch (e) { };

$("form div:nth-child(2)").remove();

$("#submitChange")[0].value = '修改'; var uname = document.getElementById("uname");

var uage = document.getElementById("uage");

var age = e.target.parentNode.previousSibling;

var id = age.previousSibling;

var name = id.previousSibling;

uage.value = age.innerHTML//年龄 uname.value = name.innerHTML//用户名       $("h3")[0].innerHTML = "用户信息修改"

$("#submitChange").click(function () {

console.log(id.innerHTML);

$.ajax({

type: "PUT",

url: "/api/Values/" + id.innerHTML,

data: { "Id": id.innerHTML, "Age": uage.value, "UserName": uname.value },

success: function (data) {

if (data == true) {

swal("修改成功!","", "success");

} else {

swal("修改失败!","", "error");

}

$(".confirm").click(function () { window.location.reload(); })

}

})

})

$("#cancel").click(function () { window.location.reload();  })         }     }) })

前端截图:

  

       

css对表格做了些样式处理我就不贴出来了,这里我用了一个弹窗的jquery插件叫sweetalert.js所有里面有swal这个方法调用。说一下前端页面我主要遇到的问题:

前端我在页面加载后执行Get方法获取数据库中的所有记录。通过遍历拼接字符串加载表格和按钮。

1.在对按钮绑定事件的时候我发现修改和删除按钮绑定的事件不能被触发可能是由于这两个按钮是生成的按钮不能绑定click事件,于是我先绑定原先的table,再用e.target获取事件对象,对事件对象进行判断,执行修改或删除命令。

2.在修改时因为我添加事件也使用了之前那个模态框导致我做修改的时候程序是走到了绑定添加的事件里面的,为了将这两个事件区别开,我在put方法下先修改了提交按钮的id,在绑定这个新的id的按钮事件来解决这个问题。

webapi初学项目(增删改查),webapi增删的更多相关文章

  1. webapi初学项目(增删改查)

    初学wenapi做了一个从数据库增删改查的项目 webapi: 1.创建项目:visual C# —> ASP.NET MVC 4 web应用程序 模板—>web api; 2.注册路由: ...

  2. 初试KONCKOUT+WEBAPI简单实现增删改查

    初试KONCKOUT+WEBAPI简单实现增删改查 前言 konckout.js本人也是刚刚接触,也是初学,本文的目的是使用ko和asp.net mvc4 webapi来实现一个简单增删改查操作.Kn ...

  3. (转)初试konckout+webapi简单实现增删改查

    原文地址:http://www.cnblogs.com/flykai/p/3361064.html 前言 konckout.js本人也是刚刚接触,也是初学,本文的目的是使用ko和asp.net mvc ...

  4. 基于Angular+WebAPI+OData的增删改查

    对于在ASP.NET WebAPI中怎么使用OData,已经在我前面的日志中的说明, 在ASP.NET Web API中使用OData 在这个示例中.我新建了一个Order的实体,在前端使用Angul ...

  5. idea社区版+第一个spring boot项目+增删改查+yml修改端口号

    参考:https://www.cnblogs.com/tanlei-sxs/p/9855071.html 中途出现问题时参考了太多 1.下载idea社区版 2.在settings -> Plug ...

  6. jsp+Servlet+JavaBean+JDBC+MySQL项目增删改查

    1简单的Mvc,分层建包. java resources src/mian/java (1)dao 包 JDBC连接类,连接数据库.增删改查方法,其他的方法. (2)model包 实体类,数据库字段, ...

  7. Hibernate修改操作 删除操作 查询操作 增加操作 增删改查 Hibernate增删查改语句

    我用的数据库是MySQL,实体类叫User public class User { private Integer uid; private String username; private Stri ...

  8. C#学习笔记(6)——大项目增删改查

    说明(2017-5-28 11:35:39): 1. 需要注意的地方很多 2. 首先是连接字符串str要直接写在类里面,不然每个按钮里面都要写一遍. 3. 查询用到sqlDataReader等三个方法 ...

  9. 初学.net增删改查

    分页显示 DAL: public List GetListByPager(int PageIndex, int PageSize, out int RowCount) { string sql = & ...

随机推荐

  1. NLP算法工程师(实习生)面试总结(持续更新)

    爱奇艺 1. attention<attention is all you need> 2. 相关项目 3. 逻辑回归 4. linux的指令(重命名文件,vim替换,vim指向文章最末行 ...

  2. 第03组 Alpha冲刺(1/4)

    队名:不等式方程组 组长博客 作业博客 团队项目进度 组员一:张逸杰(组长) 过去两天完成的任务: 文字/口头描述: 制定了初步的项目计划,并开始学习一些推荐.搜索类算法 GitHub签入纪录: 暂无 ...

  3. 微信小程序与云开发

    微信小程序基础概念 小程序云开发的三大基础能力:云数据库.云函数.云存储 Java.NodeJS.JavaScript.HTML5.CSS3.VueJs.ReactJs.前端工程化.前端架构 小程序开 ...

  4. 关于html异步加载外部json文件报错问题

    一. HTML代码如下: 参考网站(echarts-JSON请求数据):https://blog.csdn.net/you23hai45/article/details/51585506 <!D ...

  5. 「2019-8-11提高模拟赛」女装盛宴 (flag)

    传送门 Solution  基环树+倍增+双指针 第一次因为#define int long long而玄学RE 为什么标程都不用开\(long long\)啊 Code  /*玄学RE 看来defi ...

  6. Git命令相关

    特别说明 关于命令行中参数前面的-和--的区别 - 通常后面接参数的缩写 -- 通常后面接参数的全拼 eg: git status --short 等价于 git status -s 常用命令 创建版 ...

  7. 【BIEE】报表导出数据只显示500行,如何解决?

    BIEE报表展示的时候每页只显示500行,进而导致导出的时候也只能导出500行,客户抱怨:每次只能导出500行,导出后还得自己合并! 解决思路: 1.找到路径$BIEE_HOME\instances\ ...

  8. udf也能用Python

    具体步骤见<fluent加载第三方(C++,Fortran等)动态链接库> 我们对导入的动态链接库进行改动 打开VS2013 完成了上述过程以后,还需要配置Python 首先需要安装Pyt ...

  9. 秒杀功能压测 jmeter--------重要!!!

    线程组里面有三个接口请求,依次为:显示商品列表.登录秒杀平台账户.进行秒杀 对线程组用5000个线程循环10次 设置一下默认配置,之后就不用反复填写了 设置配置文件这个具体功能就是读text文件并且设 ...

  10. disruptor 组件理解

    disruptor 中核心组件包括 RingBuffer.Event .EventHandler.Sequence.Sequence Barrier. WaitStrategy.WorkProcess ...