C# 窗体程序 关于TreeView节点增删改并同时写入数据库

yuandinxiaozhu 2011-07-13 07:10:42
例如有一个表
地区 名称
广州 从化
广州 海珠
珠海 拱北

然后要形成这样的一棵树
--区域信息(自定义根节点就可以解决,下面的节点是读取数据库后显示的)
-----广州
------------从化
------------海珠
-----珠海
------------拱北

大概就是这样

另外找个师傅,我是初学者,C#,ADO都只知道一些表层的东西,然后就不知道怎么入手了。最近做了两个项目,发现自己知道的简直太表层了了。可是身边又没有人可以请教。网上的东西又鱼龙混杂,而且一些还看不懂= =|
谢谢各位了!还有我的Q65093753
...全文
364 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
南山五味子 2011-07-14
  • 打赏
  • 举报
回复
典型的树形结构算法,网上多的是!如果有什么疑问,可以联系我!
  • 打赏
  • 举报
回复
;with cc as(
SELECT row_number() over(PARTITION by diqu order by diqu) as rowid,* from #ab)
select cc.diqu,
name1= max(case when cc.rowid = 1 then cc.name end), --and cc.oder = 1 then cc.times else cc.times end),
name2= max(case when cc.rowid = 2 then cc.name when cc.rowid <>2 then '' end)

from cc group by cc.diqu

删除的话就选择当前
delete from #ab where diqu='父节点' and name ='当前节点名'


  • 打赏
  • 举报
回复
[Quote=引用 4 楼 yuandinxiaozhu 的回复:]

是这样的。遍历我已经遍历出来了。主要是增删改操作不知道怎么实现
遍历的代码是这样的:
private void Frm_Main_Load(object sender, EventArgs e)
{
treeView1.ShowLines = true;
treeView1.ImageList = imageList1;
……
str = "select * from Ware";string
[/Quote]你的语句是错误的
Tragedy 2011-07-14
  • 打赏
  • 举报
回复
添加 treeview1.Nodes.Add(node);
删除:node.Nodes.Remove(node)
flyerwing 2011-07-14
  • 打赏
  • 举报
回复
node.parent.removenode(node);
EdsionWang 2011-07-14
  • 打赏
  • 举报
回复
删除的时候把选中的节点只值作为参数放到delete语句的where条件里面应该就OK了
yuandinxiaozhu 2011-07-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 andywangguanxi 的回复:]
先把数据select出来,在遍历
[/Quote]
谢谢!!遍历我已经做出来的了。虽然有点小问题。主要是增删改操作不知道怎么办
yuandinxiaozhu 2011-07-13
  • 打赏
  • 举报
回复
图好像显示不出。。图是这样的:
-区域信息
---广州
--------从化
---广州
--------海珠
---珠海
--------拱北
yuandinxiaozhu 2011-07-13
  • 打赏
  • 举报
回复
是这样的。遍历我已经遍历出来了。主要是增删改操作不知道怎么实现
遍历的代码是这样的:
private void Frm_Main_Load(object sender, EventArgs e)
{
treeView1.ShowLines = true;
treeView1.ImageList = imageList1;
string P_Connection = string.Format("integrated security=true; database=zone; server=localhost; connect timeout=30");
SqlConnection conn = new SqlConnection(P_Connection);
conn.Open();
string str = "select * from Ware";
SqlCommand cmd = new SqlCommand(str,conn);
SqlDataReader P_Reader = cmd.ExecuteReader();
TreeNode newNode1 = treeView1.Nodes.Add("A","地区信息",1,2);
while (P_Reader.Read())
{
TreeNode newNode12 = new TreeNode( P_Reader[0].ToString(),3,4);
newNode12.Nodes.Add("A",P_Reader[1].ToString(),5,6);
newNode1.Nodes.Add(newNode12);
}
conn.Close();
treeView1.ExpandAll();
}
不过遍历有一个问题,比如如果表里有两个广州

出现的是这样的结果,怎么把从化和海珠两个子节点合并到广州的根节点下
然后是删除的问题,如果我是删除广州这个节点,我可以这样写
private void 删除节点ToolStripMenuItem_Click(object sender, EventArgs e)
{

treeView1.Nodes.Remove(treeView1.SelectedNode);
N_conn.Open();
string str = "delete from Ware where 名称='"+treeView1.SelectedNode.Text+"' ";
SqlCommand cmd = new SqlCommand(str,N_conn);
cmd.ExecuteNonQuery();
N_conn.Close();


}
可是我只要删除广州节点下的从化呢要怎么办?
额。。。我不知道有没有人知道我再说什么?
Tragedy 2011-07-13
  • 打赏
  • 举报
回复
给你一个我以前回复的地址
http://topic.csdn.net/u/20110521/10/737fa8ff-6d14-4423-bd42-4dae686fb37d.html
EdsionWang 2011-07-13
  • 打赏
  • 举报
回复
先把数据select出来,在遍历
yuandinxiaozhu 2011-07-13
  • 打赏
  • 举报
回复
诚心问问题,诚心找师傅= =
一、简介 通过这个课程带大家从零开发一款功能全面的后台管理系统,包括项目搭建、功能实现到最后的Linux系统部署全过程。本课程使用SpringMVC + Spring + Mybatis作为主体框架,使用AdminLTE作为前端框架,使用主流关系型数据库Mysql作为存储数据库,使用非关系型数据库Redis作为缓存数据库,并集成SpringSecuriy安全框架做权限的动态管理,集成Swagger2自动生成接口文档,集成Druid连接池进行SQL性能监控,集成ActiveMQ消息中间件进行异步解耦,提高性能。最后使用linux系统进行服务部署,并搭建nginx反向代理服务器提高网站性能。 二、学习目标 通过本课程的学习带大家掌握SSM框架的开发流程,并熟练使用SpringSecurity做为安全框架进行权限管理,整合相关优秀的开源框架进行功能开发。还在项目中带大家学习前端相关的Jquery、Bootstrap等知识。课程结束之后希望大家能做到独立进行开发项目的目的,增强解决问题的能力,具备功能落地实现的能力。 三、课程涉及知识点 SpringMVC源码分析Mybatis源码分析通用MapperMysql数据库Redis缓存实现ActiveMQ消息中间件SpringSecurity鉴权Swagger2接口文档生成自定义注解AOP切面编程自定义过滤器Logback日志整合Druid性能监控Linux系统Nginx反向代理Ajax异步请求技术Jquery基本使用AdminLTE前端框架Chart图表-线状图和饼状图百度地图定位城市BootStrap前端框架BootStrap-Table插件BootStrap-Treeview插件Markdown编辑器403、404、500错误页面配置数据库事务消息提示插件toastr.js图片上传插件bootstrap fileinput数字滚动效果pv/uv流量统计...四、课程部分内容截图如下 1、首页 2、菜单管理 3、图床管理 4、图标管理 5、留言反馈管理 6、druid监控 7、登录日志

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧