增删查改

一, 查询(更正)
1, 查询数据到页面
2, 使用layui插件
在这里插入图片描述
Url路径是控制器需要查询的数据
cols:[[
页面需要哪些字段的信息就把他的title field 添加出来
在这里插入图片描述
]]
3,开启分页page:true,
日期控件显示日期为date
可以在上面和layer,layTable一样定义一个layDate变量
layDate=layui.date;
在这里插入图片描述
4,如果有多条件查询,把查询的条件也传到控制器
在这里插入图片描述
5,控制器查询接收这些数据
如果接受的这些ID值可以为空的记得用int?
把使用到的表查询出来,new一个vo,把需要的数据填入
在这里插入图片描述

进行查询的时候一定要记得排序 OrderBy
List listdata = query
.OrderByDescending(o=>o.flightID)
.Skip(layuiTablePage.GetIndex())
.Take(layuiTablePage.limit)
.ToList();
int totless = query.Count();///总条数
LayuiTableData layuiTableData = new LayuiTableData()
{
data = listdata,
count = totless
};
return Json(layuiTableData,JsonRequestBehavior.AllowGet);
多条件查询的时候也要把查询所需要的字段放到写到new的vo里面
查询时查询条件为ID时判断他不为null并且大于0,为string类型的时候,直接判断不为空数据 !string.IsNullOrEmpty();
进行where条件的比对
日期格式要转为datetime格式进行
如果查询条件为一个日期段格式,要进行字符串的分割
flightDateLimit = flightDateLimit.Replace(" - ", “~”);
//对日期进行分隔
string[] strDates = flightDateLimit.Split(’~’);
if (strDates.Length == 2)
{
//将日期字符串转为date类型
DateTime dtStart = Convert.ToDateTime(strDates[0].Trim());
DateTime dtEnd = Convert.ToDateTime(strDates[1].Trim());
dtEnd = dtEnd.AddDays(1);//避免为这个月的最后一天的0点0分
query = query.Where(o => o.flightDate >= dtStart && o.flightDate < dtEnd);
}

二, 新增(更正)
数据新增,首选获取到页面新增的内容,把这些数据通过提交,提交到控制器,控制器在保存到数据库中。
例如
//获取参数
var userID = $(’#frmUpdateUser [name=“userID”]’).val();
var userGroupID = $(’#frmUpdateUser [name=“userGroupID”]’).val();
var userTypeID = $(’#frmUpdateUser [name=“userTypeID”]’).val();
获取页面参数,并且验证数据是否为空,和一些有必要的正则验证

//工号
if (jobNumber == “” || /1{3,10}$/.test(jobNumber) == false) {
layer.alert(“工号由3到10位字母或数字组成,请检查”);
return;
}
进行一些验证之后提交到控制器
$.post("@Url.Content("~/SystemMaintenance/TCCMaintain/SertCeng")",
{
airportCode: airportCode,
airportName: airportName,
cityName: cityName,
pinyinName: pinyinName
},
function (msg) {
layer.close(layIndex);
if (msg.State) {
/新增成功后要刷新页面 关闭弹出层
$("#insertCode").modal(“hide”);
//重新加载表格
layuiTab.reload({
page: {
curr: 1,//表格重置后重第一页开始
}
});
layer.alert(msg.Text, { icon: 1 });
} else {
layer.alert(msg.Text, { icon: 2 });
}
})
数据传递到控制器之后接收数据,需要判断数据是否传递过来时,断点查看数据是否传递到控制器
在这里插入图片描述

在这里插入图片描述

判断数据已经传到控制器后开始进行新增操作,如果页面数据传递不到控制器就会报错
需要在控制器中在次验证数据,是否为空,和一些正则验证,主要是避免一些用户故意操作。
//添加到数据库ADD需要新增数据的实例
myModel.S_Airport.Add(airport);
//新增的数据
if (myModel.SaveChanges() > 0)
{
//不能添加相同数据
msg.State = true;
msg.Text = “新增一条数据”;
}
else
{
msg.Text = “新增失败”;
}
三, 修改
修改和新增差不多一样
查询数据回填到页面上,获取数据库的数据post获取提交,需要有一个ID作为修改的参数,获取控制器路径,function(传入一个参数,这个参数就是控制器传递过来的数据)。
进行数据回填
在这里插入图片描述

数据回填之后,
1, 开始修改数据,
2, 获取修改的数据,
3, 验证数据,
4, 提交数据
这步操作和新增一样,传递到控制器中,进行判断,修改保存。
修改保存的数据是已经完成修改的数据
在这里插入图片描述

修改时使用try catch,和事务配合使用,是为了当try捕获到错误时,不会保存错误的数据到数据库,要成功一起成功,要有一个失败,都失败。
事务开启后,后面要提交事务scope.Complete();
四, 删除
删除数据,相对新增修改要简单的多
根据获取的隐藏域ID进行删除数据
使用一个layui插件中的提示用户是否确认要删除,点击确认就进行下一步操作,点击取消就返回到页面上,
layer.confirm(“您确定要删除吗?”, { icon: 3, title: “提示” }, function (index) {
layer.close(index);
post提交数据,提交的是它的ID,根据ID进行删除
var indexr = layer.load();//开启加载层
$.post("@Url.Content("~/SystemMaintenance/ClassMaintain/ScvitAsert")",
{
cabinTypeID:cabinTypeID
},
function (msg) {
//关闭加载层
layer.close(indexr);
if (msg.State) {
layer.alert(msg.Text, { icon: 1, title: “提示” });
//刷新界面
layTableLo.reload({
page:{
turr:1
}
});
}else{
layer.alert(msg.Text, { icon: 2, title: “提示” });
}
})
}
控制器进行删除数据
删除的时候需要判断该条数据是否正在使用中,如果没有使用就进行删除
//查询删除的数据有没有在用
int sertBuirt = myModel.B_PNRSegment.Count(o => o.cabinTypeID== cabinTypeID);
int sertSuirt = myModel.S_FlightCabin.Count(o=>o.cabinTypeIDcabinTypeID);
if(sertBuirt
0&&sertSuirt0){
如果没有在使用就为0,进行删除操作
查询出要删除的数据,
S_CabinType Sertyop = myModel.S_CabinType.Single(o=>o.cabinTypeID
cabinTypeID);
//删除数据
myModel.S_CabinType.Remove(Sertyop);
if(myModel.SaveChanges()>0){
提示用户删除成功,else否则提示用户删除失败
}
}


  1. A-Za-z0-9 ↩︎

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值