ASP.NET 支持三种不同的开发模式:Web Pages(Web 页面)、MVC(Model View Controller 模型-视图-控制器)、Web Forms(Web 窗体)。MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式。
整个系统就是Web 页面,模型-视图-控制器,Web 窗体组成的
Model(模型)是应用程序中用于处理应用程序数据逻辑的部分
View(视图)是应用程序中处理数据显示的部分。
Controller(控制器)是应用程序中处理用户交互的部分。
主要实现的功能的效果是数据的增 删 查 改 ,图片的上传,数据的导入导出。
3.1-增 删 查 改
一.数据的查询: 表格数据的初始化&多条件查询
查询表格需要的字段,进行数据的筛选,再分组查询,
分组查询的步骤:
1.查询表格数据
linq 单表查询的写法
(from 自定义的表名 in Model对象.查询的表
【where 自定义的表名.字段1 关系运算符 值 【&& 自定义的表名.字段2 关系运算符 值】】
【orderby 自定义的表名.字段】
【select 自定义的表名】
【select new {[属性名1= ]自定义的表名.字段1,
[属性名2= ]自定义的表名.字段2,
[属性名3= ]自定义的表名.字段3,
…
}】
【select 类名{ 类的属性1=自定义的表名.字段1,
类的属性2=自定义的表名.字段2,
…
}】
).Single();//查询单条数据,当没有数据或者有多条数据时会触发异常
.SingleOrDefault();//查询单条数据,当没有数据返回默认值(对象的默认值为null);当有多条数据时触发异常
.ToList();//查询多条数据并转为List
.Count();//查询有多少条数据
2.计算数据的总条数:
int count = 表名.Count();
3.分页:
List listPNR = listPNRInfor
//.OrderByDescending(p => p.PNRID)
.OrderBy(o=>o.PNRID)
.Skip(layuiTablePage.GetStartIndex())
.Take(layuiTablePage.limit)
.ToList();
4.构建返回的数据
LayuiTableData layuiTableData = new LayuiTableData
{
count = count,
data = listPNR
};
5.返回数据到页面
return Json(layuiTableData, JsonRequestBehavior.AllowGet);
页面初始化表格事件
Table.render({
elem: ‘#demo’ //指定原始表格元素选择器(推荐id选择器)
,height: 315 //容器高度
,url: ‘/api/data’
,cols: [{}]
//设置表头
page: true,//开启分页
limit: 5,//table初始化每页显示的条数是10
limits: [5, 10, 15, 20, 25, 30],//每页条数的选择项
})
二.数据的新增
就比如系统维护的三字代码来说,
第一步就是要验证数据,验证三字码;机场的机场编码不能为空同时它的长度也要为3,再去验证机场名 称不能为空,再判断机场的城市名称不能为空,城市拼音名称不能为空
第二步是判断要新增的三字码 or 机场名称是否已经存在 where (条件) tabAirport.airportCode==airport.airportCode||tabAirport.airportName == airport.airportName
没有重复的才新增
第三步是新增数据到数据库
-Add需要新增的数据实例
保存到新增到数据库 Mymodel.S_Airport.Add(airport);
新增是先经过一系列的判断,不能和原有的发生冲突,在根据它需要的条件进行新增,再保存到数据库,再到页面回填数据,打开新增模态窗体框,设置新增的标识,重置表单,设置model标题,显示模态窗体。进行新增
三.数据的修改
电子票证/票证查询与修改
1.查询当前更改的航班舱位信息
2.查询当前更改的航班信息
3.查询原来出票表的数据
4.查询出修改前的航段所选的航班舱位&航班信息
5.查询出当前PNR中所有的航段航班信息,根据航班时间排序
6.遍历数据库当前PNR中所有的航段航班信息
7.数据验证
判断不允许选择同一天的同一个航班
判断同一天的航班,如果到达时间<更改航班的起飞时间,判断时间间隔
判断(到达时间+60分钟)> 更改航班的出发时间
判断同一天航班,更改的航班是否与原航班时间重叠
8.修改航段
8.1开启事务
-查询出原航段对应的航班舱位信息
-释放座位
-保存修改
myModel.Entry(dbFlightCabin).State =System.Data.Entity.EntityState.Modified;
myModel.SaveChanges();
-修改原电子客票状态 保存修改 dbSegment
-查询出对应的电子客票 修改发票状态 保存修改 dbETicket
-为当前PNR有效航段重新编排航段号 重新编排航段编号 保存修改 segment
-为修改后的航段航班数据出票
-查询当前用户的虚拟账户信息,判断余额是否充足
-生成订单 生成订单号 生成订单数据 保存新增 Add(order);
-为新增电子客票表,生成票号
-修改票号表 保存新增 Add(newTicket);
提交事务
返回数据
到页面回填数据(步骤) 打开修改模态框
设置修改的标识 - 重置表单 - 设置model标题 - 回填被修改的机场数据 - 显示模态窗体
修改主要的流程就是验证数据,判断当前修改的信息修改后不能和其他信息冲突,再保存修改后的数据到数据库再把数据回填到页面,打开一个新的修改模态框框体。
四.数据的删除
第一步就是要先查询出要被删除的数据,判断它是否在当前数据中使用,如果数据没有在被使用,就删除数据,保存删除到数据库。再返回到视图页面,删除数据。