-
查询:LINQ / lamoda语句
-
查询验证关键字:① from :指定范围变量和数据源
② join:指定匹配条件equals连接两个数据源
③ where:根据bool表达式从数据源中筛选数据(可多条件筛选) 如(&&:和;||:或者)
④ into :用于左连接存放临时表(标识符) 左连接都用三目运算法
⑤ orderby: 对查询的ID 进行排序 (ascending:正序(默认); descending:降序排序)
⑥ select: 指定查询从那里获取数据
-
查询的句式基本一样,最后添加排序(倒序(降序)/升序(按大小)),根据情况而定
-
查询表的顺序可不按所需查的顺序进行连接,但表的ID连接要连接对,不然查询不了该数据
-
查询有 匿名查询、多表查询、单表查询
-
查询就是查询页面所需查询的数据
分页查询:1.数据筛选 2.数据验证 3.获取数据总条数 4.取数据的条数 5.调用分页封装类
新增
- 首先新增的数据是获取页面用户填写的数据,然后向控制器发送请求数据,在页面获取方法路径,接收控制器传递的数据,最后将数据新增到数据库
- 新增数据是在页面获取到的数据,先在页面里进行数据验证,再向控制器发送请求数据,然后也在控制器的Action中进行数据验证判断, 这样就进行双重验证。数据验证准确后,通过新增的核心代码Add()或AddRange()将数据添加到数据库,添加成功就进行新增的数据保存SaveChanges()
Add(entity):添加数据; entity:要添加的实体;
AddRange(entity):添加数据列表; Entity:要添加的实体集合
都要调用SaveChanges()保存数据 ,数据插入数据库前都需进行判断,有可能新增失败
注意:① 有些数据具有唯一性时,要判断新增数据中有没有和数据库中的数据是否重复的
② 涉及多表操作,需开启事务,可开启事务,新增数据成功前都需提交事务
正则表达式的数据验证:Regex.IsMatch ,页面上验证则需test
删除
-
删除数据需根据明确的数据ID,也要确定删除那条数据,所以需靠ID查询出要删除的数据信息(删除:数据ID是最重要的,不然删除信息不明确)
-
删除数据前:① 检查删除的是否是最高权限
② 检查删除的是否是当前正在使用
③ 检查删除的是否是已经使用过的
④ 检查后续的业务表中的是否有该数据,存在,则不允许删除 -
数据前的验证都不是删除数据前的以上条件,则用Remove()/RemoveRange() 删除查询出的数据,再进行保存到数据库
数据库表.Remove/RemoveRange(自定义名);
if (模型.SaveChanges() > 0){ 事务提交 删除成功 }else{ 删除失败 } -
页 面上开启加载层,在设置询问框layer.confirm
-
(先关闭加载层,) 再关闭弹出层
-
再通过异步提交方法,接收删除方法的路径,进行状态验证
-
状态为true,就进行表格刷新/表格重载
修改
修改和新增差不多,不同的是修改需知道修改的是那条数据。
修改需获取页面数据进行页面和控制器双重验证进行数据返回
- 根据需要修改的行的内容的ID,查询出该行的数据
- 在页面通过异步提交方法向控制器请求接收回填的数据
- 再在控制器用查询语句通过ID查询回填所需的参数的数据
- 再进行参数的数据验证不能为空 或 验证是否进行修改(为修改数据,就按照原来的数据直接修改)
- 进行数据对比是否重复(修改的数据ID 不能跟模型的修改的ID相等)
- 用修改的核心代码进行保存到数据
模型.Entry(参数).State = System.Data.Entity.EntityState.Modified;
if (模型.SaveChanges() > 0){ 修改成功 }else{ 修改失败 }
修改:① 不能修改最高权限
② 修改的数据含唯一性,需判断修改的数据是否重复,在判断时就需去除自身
修改完毕:用修改的核心代码保存
模型.Entry(参数).State = System.Data.Entity.EntityState.Modified;
if (模型.SaveChanges() > 0){ 修改成功 }else{ 修改失败 }