找回密码
 立即注册

QQ登录

只需一步,快速开始

边城

注册会员

9

主题

46

帖子

157

积分

注册会员

积分
157
边城
注册会员   /  发表于:2023-9-12 11:21  /   查看:1046  /  回复:13
1金币



各位老师好:
    我现在有这样的一个需求,一张表中 有N个字段需要在新增/修改的时候校验 是否重复,数据库的设置是 有的字段唯一且必填,有些是唯一非必填,那么如果通过服务端命令实现呢?
    想了好久试验了N次 还是没成功,请老师帮忙一下、
    具体见附件 demo。


附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

最佳答案

查看完整内容

首先哈,咋们应该先判断是新增还是修改,再使用设置变量命令去数据库查数据;这个咱们想一下,更新的时候判重和新增的时候的判重有什么区别呢,就会发现,更新的时候查询条件只需要额外判断这个字段是不是和自几重复,也就是说需要多加一个“并且 ID 不等于 自己的ID” 这样的条件

13 个回复

倒序浏览
最佳答案
最佳答案
Nathan.guo活字格认证 Wyn认证
超级版主   /  发表于:2023-9-12 11:21:40
来自 12#
边城 发表于 2023-9-14 10:21
老师,我实现了新增的查重,但是更新某一条数据的时候如何判断 是否和其他行重复呢?
没想明白怎么设置 ...

首先哈,咋们应该先判断是新增还是修改,再使用设置变量命令去数据库查数据;这个咱们想一下,更新的时候判重和新增的时候的判重有什么区别呢,就会发现,更新的时候查询条件只需要额外判断这个字段是不是和自几重复,也就是说需要多加一个“并且 ID 不等于 自己的ID” 这样的条件
回复 使用道具 举报
Nathan.guo活字格认证 Wyn认证
超级版主   /  发表于:2023-9-12 11:59:00
2#
你这里查询楚来的是多行记录,结果是一个数组,所以直接使用名称.属性的方式是不正确的

我们可以使用在数组中查询命令,来判断在这个数组中是否又重复的数据


-----------------------------------------------------------------------------------------------手动分割线
或者其实像咱们这个需求,是不是直接勾选输入框的值唯一,就能满足我们的呢

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
边城
注册会员   /  发表于:2023-9-12 14:29:05
3#
Nathan.guo 发表于 2023-9-12 11:59
你这里查询楚来的是多行记录,结果是一个数组,所以直接使用名称.属性的方式是不正确的

我们可以使用在 ...





是这样的,单纯的文本框设置成唯一是可以的;
但是当我用文本框组件的时候,这个唯一的提示就需要单独绑定,而绑定组件值就不能提示唯一;
如果我的唯一字段特别多 我就需要做很多不同的唯一的字段组件,这样是不是有点浪费呢?

所以我也困惑这个组件唯一怎么办呢?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Nathan.guo活字格认证 Wyn认证
超级版主   /  发表于:2023-9-12 15:16:32
4#
边城 发表于 2023-9-12 14:29
是这样的,单纯的文本框设置成唯一是可以的;
但是当我用文本框组件的时候,这个唯一的提示就需 ...

可以给组件添加一个事件。当文本框的值变动时触发事件,这样录入页面去编辑事件的命令就可以根据自己的逻辑去判重了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
边城
注册会员   /  发表于:2023-9-12 15:31:24
5#
Nathan.guo 发表于 2023-9-12 15:16
可以给组件添加一个事件。当文本框的值变动时触发事件,这样录入页面去编辑事件的命令就可以根据自己的逻 ...

老师能给个 demo 吗?
谢谢啦!
回复 使用道具 举报
Nathan.guo活字格认证 Wyn认证
超级版主   /  发表于:2023-9-12 15:40:47
6#
边城 发表于 2023-9-12 15:31
老师能给个 demo 吗?
谢谢啦!

没问题~~

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
边城
注册会员   /  发表于:2023-9-13 11:37:04
7#
本帖最后由 边城 于 2023-9-13 11:39 编辑

老师按照您的思路和demo我做了一些改进,但是这只是1个字段做判重,如果我有好几个字段的话,有没有什么其他改进的办法,可以更便捷?


具体见demo

demo中的  几个字段 如果都需要判重如何办呢?写太多判断条件很复杂 也不容易维护。

在不改变数据库设计的前提下通过服务端命令 和 前端来做判重。

请老师指教。




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Nathan.guo活字格认证 Wyn认证
超级版主   /  发表于:2023-9-13 11:45:32
8#
边城 发表于 2023-9-13 11:37
老师按照您的思路和demo我做了一些改进,但是这只是1个字段做判重,如果我有好几个字段的话,有没有什么 ...

多个字段,每个使用组件的地方都可以设置自己的事件命令,按照自己的逻辑进行判重;
因为用的是组件嘛,在通用性加强的同时,损失一定的独立性是不可避免的,暂时我也想不出更加便捷的方式了
回复 使用道具 举报
边城
注册会员   /  发表于:2023-9-13 11:52:18
9#
本帖最后由 边城 于 2023-9-13 11:53 编辑
Nathan.guo 发表于 2023-9-13 11:45
多个字段,每个使用组件的地方都可以设置自己的事件命令,按照自己的逻辑进行判重;
因为用的是组件嘛, ...

但是我在做组件事件的时候,发现如果用【页面容器】组件放二级页面,组件事件来做的话,重复的提示是没有的。
不清除是我的设置问题,还是说其他问题。
您方便的话可以再试试。
我现在的demo是通过 按钮提交来触发服务端命令的返回值来判重。

具体可以看一些我的demo
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部