C# sqlite开发桌面工具- 树形布局-宝典开发助手贴身代码专家

C#开发宝典:开发的好助手,代码随处可以查询,日常数据库维护技巧、开发技巧、项目实战;

 

适合有一定基础的人员查看和使用,迅速提升1-2年开发经验和运维经验。

 

  • 致开发者的话
  • 初级教程
  • 中级教程
  • 高级教程
  • 数据库教程
  • 大数据开发教程
  • 项目开发实战
  • 运维工程师教程

 

我们经常遇到这样的问题,总是要搜索代码模块,很多没用过,又不系统,然后每个代码模块自己又要写代码研究很久才能集成到项目中;自己会一部分开发,然后对运维可能又不是很了解?

这里笔者把自己遇到的包括开发、运维、项目实战的一些案例作为分享,采用拿来即用的理念,让开发更为便捷,常用算法、常用帮助类,常用组件,每个例子实例化展示,可以独立运行,便于开发者调试;


窗体加载事件:
   private void MainWindow_Load(object sender, EventArgs e)
        {
            //Test();
            this.Text =  GlobalWebFunction._appVerSion;
            RefreshTreeView();


            try
            {
                CheckSummary();//检查更新

            }
            catch (Exception ex)
            {

                MessageDxUtil.ShowTips(ex.Message);
            }
        }

 



采用树形的设计
代码如下:使用递归

 1  List<ad_dictionary> _othersList = new List<ad_dictionary>();//所有的节点
      
      //加载树形 2 private void RefreshTreeView() 3 { 4 treeView1.Nodes.Clear(); 5 treeView1.BeginUpdate(); 6 Cursor.Current = Cursors.WaitCursor; 7 8 var allList = DAL.DicManageLogic.GetChapterList(); 9 10 List<ad_dictionary> firstGroup = allList.Where(p => p.Parentid == "0").ToList(); 11 //除了根目录的子节点 12 _othersList = allList.Where(p => p.Parentid != "0").ToList(); 13 foreach (var groupInfo in firstGroup) 14 { 15 //不显示删除的机构 16 if (groupInfo != null && groupInfo.IsDeleted == "1") 17 { 18 TreeNode topnode = new TreeNode(); 19 topnode.Text = groupInfo.Name; 20 topnode.Name = groupInfo.Id.ToString(); 21 topnode.Tag = groupInfo.Id; 22 topnode.ImageIndex = 0; 23 topnode.SelectedImageIndex = 0; 24 this.treeView1.Nodes.Add(topnode); 25 26 //二级 27 var subItemList = _othersList.Where(p => p.Parentid == groupInfo.Id).ToList(); 28 //List<ad_dictionary> sublist = DicManage.GetTreeByID(secondList, groupInfo.Id); 29 AddOUNode(subItemList, topnode); 30 31 } 32 } 33 34 Cursor.Current = Cursors.Default; 35 treeView1.EndUpdate(); 36 this.treeView1.ExpandAll(); 37 }

        //递归加载
38 private void AddOUNode(List<ad_dictionary> list, TreeNode parentNode) 39 { 40 foreach (var ouInfo in list) 41 { 42 TreeNode ouNode = new TreeNode(); 43 ouNode.Text = ouInfo.Name; 44 ouNode.Name = ouInfo.Id.ToString(); 45 ouNode.Tag = ouInfo.Id; 46 if (ouInfo.IsDeleted == "0") 47 { 48 ouNode.ForeColor = Color.Red; 49 continue;//跳过不显示 50 } 51 52 53 var subItemList = _othersList.Where(p => p.Parentid == ouInfo.Id).ToList(); 54 if (subItemList.Count == 0) 55 { 56 //没有子节点了,不使用图标 57 ouNode.ImageIndex = -999; 58 } 59 else 60 { 61 ouNode.ImageIndex = 0; 62 ouNode.ImageIndex = 0; 63 ouNode.SelectedImageIndex = 0; 64 } 65 66 parentNode.Nodes.Add(ouNode); 67 68 AddOUNode(subItemList, ouNode); 69 } 70 }

 

主要包括以下模块内容,每月更新1-2次
@初级教程:基础语法的部分核心讲解
@高级教程:全文搜索、短信、日志系统、qq登录
@中级教程:ORM框架讲解、文字转语音工具、二维码扫描工具源码解析;
@数据库教程:sqserver\sqlite\mysql的常见运维、数据库备份、表备份、日常简单统计等、与C#的批量交互、
导入导出数据、数据转换
@大数据开发教程:solr7.2的项目讲解、solr .net的使用、solr j的使用、lucene的使用 
@项目开发实战:五金网、驾校预约系统、小区停车收费系统等讲解
@运维工程师教程:windows服务器的日常部署:win2003\2008\2012\2016等多个版本演示安装,
iis搭建网站;
sql2000\2008\2012等数据库安装;Linux(centos、ubuntu)、阿里云服务器的搭建、域名解析,备案操作



数据库设计如下:
CREATE TABLE dbo.ad_dictionary
(
Id BIGINT NOT NULL,
TenantId BIGINT,
Parentid BIGINT,
Name NVARCHAR (100),
Code NVARCHAR (100),
Description NVARCHAR (max),
Enabled INT,
Sort INT,
IsDeleted INT,
CreatedTime DATETIME2 (0),
PRIMARY KEY (Id)
)
GO

 

 

 

 

 

 


 



以下是部分预览图

 

 

 

 

软件运行界面参考

 

 

 

 使用sqlite开发,树形导航菜单。欢迎探讨运维、C#开发等领域技术。

测试连接

链接:https://pan.baidu.com/s/1uf6BerKYen-85t4C-hb3Lw
提取码:mbys




posted @ 2022-02-13 19:29  源码DNA分享  阅读(269)  评论(0编辑  收藏  举报