C#单表修改

开发工具与关键技术:VS C#
撰写时间:2019年 4月 8日

修改操作其实就是在页面对数据库里已经存在的数据进行一个修改,在页面把修改好的数据提交到控制器,控制器再对传过来的数据进行各种判断再保存到数据库里。
首先,在页面修改数据的时候,要把数据库里的数据回填到页面,所以就要根据数据库里的主键ID获取要修改的数据,数据库的主键决定了它的唯一性。在视图获取

声明一个变量获取绑定表格的主键ID赋值给点击按钮 var academeId = data.AcademeID; var 修改按钮= data.主键ID;在数据回填之前还要重置一下表单。
$(’#formInsetAcademe input[type=“reset”]’).click();
注意:在数据回填之前就要重置表单,如果先回填数据再重置表单就是把刚刚回填的数据给清空了,这个逻辑顺序要搞清楚。
回填要修改的数据就是要拿页面传输过来的数据作为条件,到数据库里进行一个条件查询的操作,把查询到的数据回填到页面上。所以要到控制器定义一个方法,判断页面传输过来的数据是否为空,如果不为空就根据主键ID查询具体的某一条数据,用Ling查询语句到数据库查询页面传输过来的数据。查询一条数据用实体来接收;查询一个表格的数据就要用List来接收。
实体类 sysAcademe = (from tbAcademe in myModel.SYS_Academe
where tbAcademe.AcademeID == 页面传过来的数据
select tbAcademe).Single();
//Single是唯一的意思,就是返回一条数据。
数据回填在页面获取控制器的数据也要用一个post异步提交
$.post("/区域/控制器/具体的方法名称",
//键值对的格式
{ 控制器那边获取的键: 页面获取的值}, function (回调函数) {
// loadDatatoForm:封装的方法绑定input标签
loadDatatoForm(“formUpdateAcademe”, data);
}, “json”);
这样就把数据回填成功了。
其次,把数据回填完之后就要修改数据,再把修改好的数据进行保存。所以,先到控制器定义一个方法,再到视图页面那边调用这个方法,也用一个 try{ } catch (Exception){ throw; } 来捕捉错误。再判断一下在页面修改好的数据传输过来是否为空。
if (条件数据!= ‘’ && AcademeID != IsNullOrEmpty && !isNaN(AcademeID) &&
!string.IsNullOrEmpty(sysAcademe.AcademeCode) &&
!string.IsNullOrEmpty(sysAcademe.AcademeName))
用if 判断语句里的函数!string.IsNullOrEmpty判断一下修改好的内容AcademeCode 或AcademeName是否为空,&&这个符号为或者的意思。原本是有数据的,把数据改为空的是不可以对数据进行保存,则需要提醒用户。
如果修改好的数据传输过来不为空,则需要拿传输过来的数据到数据库进行匹配;用一个Linq查询语句来进行匹配,
int otherCount = (from tbAcademe in myModel.SYS_Academe
where tbAcademe.AcademeID != sysAcademe.AcademeID && (
tbAcademe.AcademeName == sysAcademe.AcademeName.Trim() ||
tbAcademe.AcademeCode == sysAcademe.AcademeCode.Trim())
select tbAcademe).Count();
如果 if (otherCount == 0)总的条数等于0,说明修改好的数据跟数据库里的数据不重复,则可以进行修改保存操作 。是修改数据库里的某一条数据再保存,所以要根据主键ID获取要修改的数据。
实体 要修改的数据= (from tbAcademe in myModel.SYS_Academe
where tbAcademe.AcademeID == sysAcademe.根据主键ID
select tbAcademe).Single();
给实体赋值,把在页面修改好的数据赋值给在页面修改之前的数据,得到的就是页面修改好的数据。
dbAcademe.AcademeName = sysAcademe.AcademeName;
dbAcademe.AcademeCode = sysAcademe.AcademeCode;
赋值完之后就可以执行修改操作 myModel.Entry(dbAcademe).State = EntityState.Modified;
如果if (myModel.SaveChanges() > 0)大于0,说明修改成功。
否则修改失败提醒用户: else
{
returnJson.State = false;
returnJson.Text = “修改失败!”;
}
如果总的条数Count不等于0,说明传过来的数据跟数据库里的数据重复,则需要提醒用户修改数据已重复。
else
{
returnJson.State = false;
returnJson.Text = “已重复!”;
}
然后,用一个post异步提交把在页面修改好的数据提交给控制器,再刷新一下表格
tabAcademe = layuiTable.reload(‘tabAcademe’);
总结:修改数据跟新增数据差不多,修改就是对数据库里的数据进行修改再保存到数据库,新增就是新增数据到数据库里。
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
  • 打赏
    打赏
  • 0
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:像素格子 设计师:CSDN官方博客 返回首页
评论

打赏作者

烧脑袋

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值