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