数 据 库 的 增、删、查、改

【一】 查询
通用查询格式:
List<> 自定义名 = (form 自定义表名 in Model对象.查询的表
Where 自定义表名.字段1 关系运算符( == ) 值 && 自定义表名.字段2 关系运算符( == ) 值
Orderby 自定义表名.字段
Select new ()具体数据类型{
}).ToList();
视图:使用layui table表格渲染模块,向控制器发送异步请求获取数据
控制器:查询数据,进行数据验证,最后再传递数据到视图
1.单表查询(前面提供了什么类型,后面就要一致性,返回什么类型 List / ToList())
第一种方式(左边是指定输入参数,右边是lambda的主体。一些筛选语句等等,可以简单的理解为sql里面的where条件):
var airport = myModel.S_Airport.Single(m => m.airportID == AirportID);
第二种方式:
List<S_CabinType> listCabinType1 = (from tbCabinTpye in myModal.S_CabinType
select tbCabinTpye).ToList(); //查询所有的航班类型
2.连表查询:(前面提供了什么类型,后面就要一致性,返回什么类型 List / ToList())
List list = (from tbTicket in myModel.S_Ticket
join tbUser in myModel.S_User on tbTicket.userID equals tbUser.userID
orderby tbUserGroup.userGroupID (orderby:排序【这里没使用, 分页数据时就要使用,否则会报错】)
where selectUserIds.Contains(tbUser.userID) //条件查询 (Contains: 确定某元素,是否在List<>中)
select new TicketVo
{ userName = tbUser.userName,
jobNumber = tbUser.jobNumber,
}).ToList();
关键词:
from in
Join(连接) in(条件) on(从哪里) equals(谁等于谁)
【易混易忘】:
(1).singel() 查询单条数据,但没有数据或者有多条数据时会触发异常
.singleOrDefault()查询单条数据,当没有数据返回默认值(对象默认值为null);当有 多条数据时触发异常
.ToList()查询多条数据,并转化为List(列表)
.Count() 查询有多少条数据
(2)使用singel()是时,要搭配try {…} catch(){…} ,try … catch进行捕抓异常
(3)tempPNRlinq:精准查询 Contains()模糊查询,空格也包括在内
(4)在分页查询之前一定要进行排序,常用到的几个参数:OrderBy(排序) Skip(从哪里开始 GetStartIndex)Take(返回的总数量 limit)
(5)多数据查询,要封装一个分页实体类,格式的要求,进行数据的分页
(6)涉及多表查询数据提交要开启事务using,保证数据的一致性
—————————————————————————————————————————————————
【二】修改
思路:
(1)table表格的修改操作,需要使用layui的自定义列模板
(2)查询出数据,进行回填,弹出模态窗体
(3)获取修改后的数据,条件判断数据不能为空,再向数据进行异步数据请求
(4)再次进行判断修改的内容是否与以前的内容重复,告诉数据库,修改了数据
修改的核心内容:
myModel.Entry(modCabinType).State = System.Data.Entity.EntityState.Modified;
myModel.SaveChanges();
—————————————————————————————————————————————————
【三】新增
思路:
(1)给指定的元素添加一个点击事件,弹出模态窗体
(2)填写数据时,当change值发生改变(change‘blur’:change值改变,失去焦点时),我们要对所填写的内容进行验证是否符合填写规范(可以通过正则表达式验证),符合则让input文本值value发生改变 ,赋值给input
(3)获取填写的数据,条件判断数据不能为空,再向数据进行异步数据请求提交数据
(4)再次进行判断新增的内容是否与以前的内容重复,告诉数据库,新增了数据
(5)回到视图回调函数,关闭模态窗体,刷新表格
新增代码的核心:
myModal.S_CabinType.Add(modCabinType);
myModal.SaveChanges();
—————————————————————————————————————————————————
【四】 删除
思路:
(1)给指定按钮添加一个点击事件,弹出提示框是否确定删除
(2)向控制器发送删除请求,控制器接收请求后,查询出所请求的数据,然后进行数据判断,数据删除
删除的核心代码:
S_CabinType modCabinType = myModel.S_CabinType.Where(m => m.cabinTypeID == cabinTypeID).Single(); — 查询
myModel.S_CabinType.Remove(modCabinType); — 进行移除
myModel.SaveChanges();

【知识点扩展】:
ASP.NET MVC中Controller与View传值方法有:ViewData、ViewBag、TempData、Session四种方法。
(1)ViewBag和 ViewData存储的值的生命周期只有在从Controller到View中,而TempData中的数据不仅在 从Controller到View中有效,在不同的Action之间或者从一个页面跳转到另一页面(Controller to Controller)后依然有效。 
(2)Session 是存储在服务端的内存中或数据库(各个Web服务器处理方式不同),所以它的生命周期是最长的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值