C# 根据条件查询树节点所需的相关数据

news2024/12/26 15:19:56

默认加载所有的数据,结构长这个样子的。

 数据库结构长这个样子的

cParentId=上级ID、

cItemCode=根节点代码、

cItemTitle=根节点名称、

cItemName=子节点名称、

cItemValue=子节点代码

下面就是业务数据处理的相关逻辑:

 

 核心逻辑如下图:

 

 public List<DataItem> GetAllDataItems(string name)
        {
            if (string.IsNullOrEmpty(name))
            {
                return _freeSql.Select<DataItem>().ToList();
            }

            //数据源
            var data = _freeSql.Select<DataItem>().ToList();

            //条件查询-模糊查询                                  模糊查询子集                 或           模糊查询根节点            
            var WhereData = _freeSql.Select<DataItem>().Where(a => a.cItemName.Contains(name) || a.cItemTitle.Contains(name) && a.cParentId == "0").ToList();

            //根据模糊查询出来的数据进行循环查询
            for (int i = 0; i < WhereData.Count; i++)
            {
                //判断当前节点是否为根节点
                if (WhereData[i].cParentId != "0")
                {
                    //根据循环出来的上级ID(cParentId),到数据源里面匹配相对应的ID
                    var ddl = data.Where(a => a.cId == WhereData[i].cParentId).ToArray();

                    //判断数据源里面匹配到的数据,是否存在与条件查询的数据源内
                    var ddm = WhereData.Where(a => a.cId == ddl[0].cId).ToArray();
                    //如果输入数据源不存在该数据
                    if (ddm.Length == 0)
                    {
                        WhereData.Add(ddl[0]);//进行追加,此时的WhereData.Count也会相应的+1
                    }
                }
            }
            //输出所有相关的数据
            return WhereData;
        }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/583214.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用Python实现微信自动回复,操作简单,小白也会使用!秒回女朋友消息 泰裤辣!

文章目录 一、安装itchat库二、登录微信三、实现自动回复四、实现关键词回复五、实现图灵机器人回复总结 Python精品助学大礼包 一、安装itchat库 首先&#xff0c;我们需要安装itchat库&#xff0c;它是一个用于微信个人号的微信Python API&#xff0c;可以用于实现微信自动回…

Java Web实训项目:西蒙购物网

文章目录 一、网站功能需求二、网站设计思路&#xff08;一&#xff09;设计模式&#xff08;二&#xff09;网站前台&#xff08;三&#xff09;网站后台1、用户管理2、类别管理3、商品管理4、订单管理 &#xff08;四&#xff09;购物流程图 三、网站运行效果四、网站实现步骤…

算法设计 || 实验四 回溯算法-八皇后问题(纯手敲保姆级详细讲解+小白适用+头歌解析)

&#xff08;一&#xff09;八皇后问题描述 在一个8x8的棋盘上放置8个皇后&#xff0c;使得每个皇后都不会互相攻击&#xff0c;即任意两个皇后都不能在同一行、同一列或同一条对角线上。 &#xff08;二&#xff09;算法思路 由于八皇后问题的解法数量较多&#xff0c;本文将介…

mysql+Galera+haproxy高可用

文件下载地址环境准备 1.1准备三台服务器 服务器名称 Ip 描述 Node0 xxx.xxx.xxx.xxx Node1 xxx.xxx.xxx.xxx Node2 xxx.xxx.xxx.xxx 1.3 安装依赖包 sed -i s/SELINUXenforcing/SELINUXdisabled/g /etc/selinux/config setenforce 0 yum -y install lsof ne…

Axure教程—堆积面积图

本文将教大家如何用AXURE制作堆积面积图 一、效果介绍 如图&#xff1a; 预览地址&#xff1a;https://d4nsae.axshare.com 下载地址&#xff1a;https://download.csdn.net/download/weixin_43516258/87838160 二、功能介绍 简单填写中继器内容即可动态显示值 样式颜色等可…

热榜!阿里出品2023版Java架构师面试指南,涵盖Java所有核心技能

最近很多粉丝朋友私信我说&#xff1a;熬过了去年的寒冬却没熬过现在的内卷&#xff1b;打开Boss直拒一排已读不回&#xff0c;回的基本都是外包&#xff0c;薪资还给的不高&#xff0c;对技术水平要求也远超从前&#xff1b;感觉Java一个初中级岗位有上千人同时竞争&#xff0…

sqlmap的使用详细讲解

一、sqlmap介绍 简介&#xff1a;是一个自动化的sql注入工具&#xff0c;主要功能扫描、发现并利用给定的 url的sql注入漏洞&#xff0c;内置了很多插件 sqlmap支持的数据库&#xff1a; MySQL、oracle、sql-server、DB2.... 注意&#xff1a;sqlmap只用来检测和sq…

用户需求调研的6大注意事项

1、调研目标要清晰具体 调研目标需明确、清晰、具体&#xff0c;只有这样&#xff0c;才能确保在样本选择和问卷设置时&#xff0c;具有明确的目标性和针对性。 2、调研用户精细化梳理 由于用户间存在个体差异&#xff0c;如果只是随机选取部分用户作为调研样本的话&#xff0c…

Tcl-9. string 命令

字符串是 Tcl 中的基本数据类型&#xff0c;所以有大量的字符串操作命令。一个比较重要的问题就是 模式匹配&#xff0c;通过模式匹配将字符串与指定的模式&#xff08;格式&#xff09;相匹配来进行字符串的比较、搜索等 操作。下面string 命令提供了一些简单的模式匹配机制。…

MSP432学习笔记9:定时器A-----捕获

今日得以继续我的MSP432电赛速通之旅~~~ 目录 基础知识&#xff1a; 相关库函数&#xff1a; 一般配置步骤&#xff1a; 首先定义一个初始化函数&#xff1a; 1.复用引脚: 2.配置连续计数结构体: 3.初始化定时器连续计数: 4.配置捕获结构体: 5.初始化定时器为捕获: …

缺少vcruntime140.dll如何修复?电脑小白也能学会修复vcruntime140.dll教程

Vcruntime140.dll是一个用于微软的Visual C软件的动态链接库文件&#xff0c;DLL的全称是动态连接库(Dynamic Link Library)&#xff0c;它是许多不同软件中所共用的文件类型。这个文件被广泛用作其他软件的依赖库&#xff08;dependency&#xff09;。每当您尝试运行一个应用程…

大体量数据迁移成难题,亚马逊云科技如何让迁移能效两不误

逼真的人物设定&#xff0c;精美的主题布局&#xff0c;沉浸式的互动体验&#xff0c;交互式的多元场景……一系列虚拟与现实高度契合又相互映射的设定&#xff0c;成就了“元宇宙”游戏世界的无穷魅力。GVERSE开发的Blockman Go平台就是有着相当大体量的UGC&#xff08;用户生…

优秀的开源测试工具和框架推荐:精选十大神器!

目录 引言 Katalon Studio Selenium Appium JMeter SOAP UI Robot Framework Watir JUnit Robotium Citrus 结语 引言 你是一位测试从业者&#xff0c;时刻关注着最新的测试工具和框架。但在众多的选择面前&#xff0c;你是否感到困惑和无从下手&#xff1f; 别担…

Android音视频开发1:Android Studio安装

1.JDK安装&#xff0c;至少安装JAVA 1.7 对比项目 Android iOS 开发语言 Java Objective-c&#xff0c;Swift 系统开放性 Android源代码开放&#xff0c;开放性更好 封闭操作系统&#xff0c;开放性较差 系统安全性 源代码开放&#xff0c;安全性较差 封闭操作系统&…

电力电子课设|数控产生PWM波|使用51单片机输出占空比可调PWM波(按钮控制、数码管显示)速成教程

我们学校电气专业开始做电力电子的课设了&#xff0c;小组选了一项制作硬件电路的任务&#xff0c;里面有要求采用数控方式实现DC-DC电压变换的输出电压调节&#xff0c;数控在电路中的体现就是用单片机输出可调占空比的PWM作用于IRF520模块&#xff0c;实现电压的变化&#xf…

chatgpt赋能python:Python不等于0:为什么Python成为SEO的热门选择?

Python不等于0&#xff1a;为什么Python成为SEO的热门选择&#xff1f; 如果你正在寻找一门适合SEO的编程语言&#xff0c;Python可能就是你的不二选择。Python在SEO行业越来越流行&#xff0c;因为它具有许多与SEO相关的功能和特点。通过本文&#xff0c;我们将会介绍Python为…

Flutter调优--深入探究MediaQuery引起界面Rebuild的原因及解决办法 | 京东云技术团队

前言 我们可以通过MediaQuery.of(context)方法获取到一些设备和系统的相关信息&#xff0c;比如状态栏的高度、当前是否是黑暗模式等等&#xff0c;使用起来相当方便&#xff0c;但是也要注意可能引起的页面rebuild问题。本文会介绍一个典型的例子&#xff0c;并深入源码来探讨…

chatgpt赋能python:用Python下载MP3的方法

用Python下载MP3的方法 如果你想从互联网上下载MP3&#xff0c;那么你可以使用Python来实现这个任务。在本文中&#xff0c;我们将介绍如何用Python编写程序来下载MP3&#xff0c;同时还将分享一些有用的工具和资源。 Python中使用的库 要下载MP3&#xff0c;你需要使用Pyth…

接口测试简介以及接口测试用例设计思路

接口测试简介 1.什么是接口 接口就是内部模块对模块&#xff0c;外部系统对其他服务提供的一种可调用或者连接的能力的标准&#xff0c;就好比usb接口&#xff0c;他是系统向外接提供的一种用于物理数据传输的一个接口&#xff0c;当然仅仅是一个接口是不能进行传输的&#x…

如何快速入门高性能计算?五个实用学习建议分享

高性能计算 &#xff08;High-Performance Computing&#xff0c;HPC&#xff09;是指通过计算机技术实现高速运算&#xff0c;对大规模科学计算、数据分析、复杂制造等领域的研究与应用提供支撑。目前&#xff0c;HPC已经广泛应用于医学、天文、材料科学、地球科学、气象科学、…