新增 修改,对xx名字或者其他属性做校验判断是否存在
需求描述:页面输入完xxName和xx编码,点击提交,根据两项内容做重复校验(就是看看数据库里有木有相同的)
解决思路:把这两个东西作为查询条件去查,查到有记录,提示已存在,就不执行新增或者修改操作。想着这个小功能,应该不费事,简简单单嘛,结果新增的时候还好说,没有记录的话就save了,有的话重新输入再save就行了,可是,当我给修改功能加校验的时候,发现就有问题了,完犊子,当然不能完犊子。
我分析了一下,修改功能,不仅仅有名字、编码这两项,还有比如说 部门吧,如果你修改的时候,仅仅修改了部门,那么名字,编码都没变,点提交的时候,就会根据名字和编码去查询,那一定能查到记录,还是自己的这条记录啊,因为现在的还没执行保存呢,仅仅是点了提交,触发了校验查询,但是这条自己的应该是可以修改的,为什么不能呢。
校验的关键部分就在这里,用id来做校验,获取查到的记录的id,和自己的id作比较(点击编辑,页面肯定有回显,弄个input隐藏域把id放进去),如果不相等,说明这个名字和编码已经有对应的对象了,就不能保存,重新输入,如果相等,说明查到的记录还是自己了,就可以执行update。
总结:主键id 是唯一的,可以作为判断依据,这里做校验出问题,就是自己的记录所影响,通过查到的id和自己的id比较,从而把自己排除。
新增 修改,对xx名字或者其他属性做校验判断是否存在的更多相关文章
- BizTalk 新增/修改/删除 XmlDocument 名字空间的高效方法
新增一个名字空间 public class AddXmlNamespaceStream : XmlTranslatorStream { private String namespace_; priva ...
- salesforce 零基础学习(六十九)当新增/修改一条记录以后发生了什么(适合初学者)
salesforce开发中,我们会对object进行很多的操作,比如对object设置字段的必填性唯一性等,设置validation rule实现一下相关的字段的逻辑校验,设置workflow实现某个 ...
- Oracle忘记用户名和密码以及管理员用户新增修改删除用户
Oracle忘记密码: 1.以管理员身份登录,打开dos窗口,输入 sqlplus / as sysdba 回车 2.查看当前用户和状态 select username, account_status ...
- 如何使用编辑模板在ASPxGridView中进行新增修改(除去常规的gridviw模板编辑外)
aspgridview模板编辑效果图: //前端代码:(核心: <Templates><EditForm>.....中间可用栅格样式布局等(随意)...</Templat ...
- 关于PowerBuilder 9.0中如何修改项目工程名字
关于PowerBuilder 9.0中如何修改项目工程名字,首先要找到三个文件,xxx.pbl.xxx.pbt.xxx.pbw这三个文件,为何要找这个三号个文件呢? 因为在使用PowerBuilder ...
- bat批量修改图片的名字实现(两种方法)
问题描述: 业务中遇到需要批量修改大量图片的名字. 如下图,需要修改为图片名字“u=”之后和“,”之前的那一串 解决思路1: bat批处理,网上查找相关代码如下: @echo off SetLocal ...
- Java代码操作properties文件(读取,新增/修改,删除)
项目中需要用到操作properties文件中的数据,记录一下 package com.bonc.savepic.save; import java.io.FileNotFoundException; ...
- mysql中如何修改表的名字?修改表名?
需求描述: 今天在进行mysql表的历史数据迁移,需要将某张表进行备份,修改表的名字,在此记录下操作过程. 操作过程: mysql> create table ts01 like ti_o_sm ...
- iOS 修改APP工程名字
我们在iOS开发中,难免会遇到项目做到一半要改名字的情况.如果项目名差的太大,工程名看起来总是不舒服的,就会想着为工程改个贴切的名字,那么你就为用到本文记录的内容. 如何修改工程名呢? 下面我就拿一个 ...
随机推荐
- CentOS7清理磁盘空间
1 首先查询磁盘空间占用情况. 发现/根目录下面磁盘占用百分之一百 df -ah 2 进入根目录,查询大文件与目录 cd /du -sh * | sort -n 查看上GB的目录并且排序,可以用这个命 ...
- HttpWebResponse 解压gzip、deflate压缩
需要使用到两个Stream的子类:GZipStream.DeflateStream,代码如下: public string GetResponseBody(HttpWebResponse respon ...
- 在已有的Java项目中使用Kotlin
需要配置两个地方首先在项目点gradle文件中引入Kotlin插件 然后在module的build.gradle文件中应用插件
- 51nod1693 水群 最短路
若A=K*B,若仅通过操作二:将B变换为A需要K步, 由算数基本定理可知:k=p1*p2*……pn(p为素数,且可能重复) 那么:将B转化为p1*B需要p1步,将p1*B转化为p1*p2*B需要p2步 ...
- Battery historian安装及使用
在介绍Battery historian之前首先来介绍一下 Android adb bugreport 工具,bugreport是什么,怎么用? android系统想要成为一个功能完备,生态繁荣的操作 ...
- bootstrap模态框显示时被遮罩层遮住了
<style>.modal-backdrop{z-index:0;}</style>
- 【CentOS7.0】虚拟机如何实现扩展存储空间
写在前面的一些小废话 有时候,虚拟机随着使用,会导致存储不够,这时就需要给虚拟机扩容. 扩容的前提是,此虚拟机没有快照. 扩容时,需要编辑虚拟机设置.为了形成对比,第一张图片是扩容前,第二张图片是扩容 ...
- 【转】python模块分析之hashlib加密(二)
[转]python模块分析之hashlib加密(二) hashlib模块是用来对字符串进行hash加密的模块,明文与密文是一一对应不变的关系:用于注册.登录时用户名.密码等加密使用.一.函数分析:1. ...
- Keepalived详解(五):Keepalived集群中MASTER和BACKUP角色选举策略【转】
一.Keepalived集群中MASTER和BACKUP角色选举策略 在keepalived集群中,其实并没有严格意义上的主.备节点,虽然可以在keepalived配置文件中设置state选项为MAS ...
- Matlab调用C程序
Matlab调用C程序 复制来自https://blog.csdn.net/u010839382/article/details/42463237 Matlab是矩阵语言,如果运算可以用矩阵实现, ...