热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

treeview同一级别不允许重复

这种效果怎么实现,数据库设计是如下字段名:自动标示ID,名称,自己的等级lever,上级ID但不知道怎么在同一级别不能重复的情况下来实现如图所示的情况
这种效果怎么实现,数据库设计是如下字段名:自动标示ID,名称,自己的等级lever,上级ID    但不知道怎么在同一级别不能重复的情况下来实现如图所示的情况

14 个解决方案

#1


你数据库也设置联合主键,自己的ID,自己的等级和上一级的ID做联合主键,不能都相同

#2


你要保证你select出来的数据不重复才行,这样就构造树形就行了,否则,你就要查找同级节点,判断是否存在

#3


比如说:我在 包间下面的001添加子节点002,但大厅下面的001下面已经有002了,我该怎么判断出,我将要添加的这个002没有与它重复的??

#4


这个图就是我数据库里存的,但我不知道该怎么写个算法,来判断同一级别有没有重复的

#5


你在数据层面上就要保证它不重复,而不是到了显示的时候给去掉
显示的再对,后台数据就是错的,有什么用?

#6


你在插入002这条数据之前,就应该先select一下,有重复就提示错误

#7


引用 6 楼 Z65443344 的回复:
你在插入002这条数据之前,就应该先select一下,有重复就提示错误
我需要的是只要同一级别不同上级是可以重复的,现在我知道该怎么办了,不管增删改查,只要找对ID就行了,一个前辈告诉我,只要在绑定到treeview的时候,将对应节点的ID存到Nodes.ToolTipText里面就行,当点击某节点时,可直接获得它的ID,很好用的呢。。

#8


引用 7 楼 LWJ61 的回复:
Quote: 引用 6 楼 Z65443344 的回复:

你在插入002这条数据之前,就应该先select一下,有重复就提示错误
我需要的是只要同一级别不同上级是可以重复的,现在我知道该怎么办了,不管增删改查,只要找对ID就行了,一个前辈告诉我,只要在绑定到treeview的时候,将对应节点的ID存到Nodes.ToolTipText里面就行,当点击某节点时,可直接获得它的ID,很好用的呢。。

这个办法治标不治本.你显示是正常了,后台数据还是错误的
你前台显示的时候,怎么能知道002到底是挂到大厅还是包间里的?
既然它只能在一个地方出现,而现在出现在了2个地方,你显示的时候没有任何办法判断它先出现在哪,而后面那个不该出现

#9


如果002是先放到包间,又转移到大厅
那么你先往大厅里放进002,再判断大厅里已经有了002,所以包间里不显示,OK,正常

如果002是先放到大厅,又转移到包间
你后台数据不做相应的删除处理
那么前台显示的时候,还是会先把它放到大厅里,然后包间不显示.

#10


这个问题的根本问题是,楼主在写入表的时候就要防止数据有相同,而不是在加载的时候判断有相同!

#11


引用 10 楼 danny_2011 的回复:
这个问题的根本问题是,楼主在写入表的时候就要防止数据有相同,而不是在加载的时候判断有相同!

没错
只有在写入表的时候做判断,你才能判断出数据到底应该写在哪里
如果数据库中的数据已经异常
你在显示的时候,是无法知道到底正常应该是什么样的

#12


你这个貌似没有必要吧

#13


前辈们,但我说的那样,实现了呢。。添加的时候,先找出选中节点的ID,在它下面添加新的,若判是否有重复值的话,就看我表里的所有以选中的节点ID为上级的节点,是不是和我现在新添加的这个重名就可以了。完成后,接着把新添加的这个节点的ID保存到Nodes.ToolTipText了。所以我其他的操作也是这样的,不管改,删,都是可以获取到对应节点的ID。。只要ID有了,就可以对它本身操作了。

#14


引用 13 楼 LWJ61 的回复:
前辈们,但我说的那样,实现了呢。。添加的时候,先找出选中节点的ID,在它下面添加新的,若判是否有重复值的话,就看我表里的所有以选中的节点ID为上级的节点,是不是和我现在新添加的这个重名就可以了。完成后,接着把新添加的这个节点的ID保存到Nodes.ToolTipText了。所以我其他的操作也是这样的,不管改,删,都是可以获取到对应节点的ID。。只要ID有了,就可以对它本身操作了。

仔细看我在8楼和9楼说的
你是只显示了1个,但是你确定显示的对吗?你如何确定显示的这1个到底应该显示在哪里?

推荐阅读
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • qt学习(六)数据库注册用户的实现方法
    本文介绍了在qt学习中实现数据库注册用户的方法,包括登录按钮按下后出现注册页面、账号可用性判断、密码格式判断、邮箱格式判断等步骤。具体实现过程包括UI设计、数据库的创建和各个模块调用数据内容。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 解决Cydia数据库错误:could not open file /var/lib/dpkg/status 的方法
    本文介绍了解决iOS系统中Cydia数据库错误的方法。通过使用苹果电脑上的Impactor工具和NewTerm软件,以及ifunbox工具和终端命令,可以解决该问题。具体步骤包括下载所需工具、连接手机到电脑、安装NewTerm、下载ifunbox并注册Dropbox账号、下载并解压lib.zip文件、将lib文件夹拖入Books文件夹中,并将lib文件夹拷贝到/var/目录下。以上方法适用于已经越狱且出现Cydia数据库错误的iPhone手机。 ... [详细]
  • 后台获取视图对应的字符串
    1.帮助类后台获取视图对应的字符串publicclassViewHelper{将View输出为字符串(注:不会执行对应的ac ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • 本文详细介绍了MySQL表分区的创建、增加和删除方法,包括查看分区数据量和全库数据量的方法。欢迎大家阅读并给予点评。 ... [详细]
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
author-avatar
七锦少年
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有