using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace treeview
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
DataSet ds = new DataSet();
private void Form1_Load(object sender, System.EventArgs e)
{ // 定义数据库连接
SqlConnection CN = new SqlConnection();
try
{
//初始化连接字符串
CN.ConnectionString = "Data Source=localhost;uid=sa;pwd=;database=changzhen"; CN.Open();
//添加命令,从数据库中得到数据
SqlCommand sqlCmd = new SqlCommand();
sqlCmd.Connection = CN;
sqlCmd.CommandText = "select * from tbTree";
sqlCmd.CommandType = CommandType.Text;
SqlDataAdapter adp = new SqlDataAdapter(sqlCmd);
adp.Fill(ds);
}
catch (Exception ex)
{
throw (ex);
}
finally
{
CN.Close();
}
//调用递归函数,完成树形结构的生成
AddTree(0, (TreeNode)null);
} // 递归添加树的节点
public void AddTree(int ParentID, TreeNode pNode)
{ DataView dvTree = new DataView(ds.Tables[0]);
//过滤ParentID,得到当前的所有子节点
dvTree.RowFilter = "[PARENTID] = " + ParentID;
foreach (DataRowView Row in dvTree)
{
if (pNode == null)
{ //'?添加根节点
TreeNode Node = treeView1.Nodes.Add(Row["ConText"].ToString());
AddTree(Int32.Parse(Row["ID"].ToString()), Node); //再次递归
}
else
{ //添加当前节点的子节点
TreeNode Node = pNode.Nodes.Add(Row["ConText"].ToString());
AddTree(Int32.Parse(Row["ID"].ToString()), Node); //再次递归
}
}
} private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{ }
}
}
以上代码编译都没有出错,但就是在treeview窗体里面没有数据显示,数据库里是有数据的啊,是数据库连接不对吗?请指教
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace treeview
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
DataSet ds = new DataSet();
private void Form1_Load(object sender, System.EventArgs e)
{ // 定义数据库连接
SqlConnection CN = new SqlConnection();
try
{
//初始化连接字符串
CN.ConnectionString = "Data Source=localhost;uid=sa;pwd=;database=changzhen"; CN.Open();
//添加命令,从数据库中得到数据
SqlCommand sqlCmd = new SqlCommand();
sqlCmd.Connection = CN;
sqlCmd.CommandText = "select * from tbTree";
sqlCmd.CommandType = CommandType.Text;
SqlDataAdapter adp = new SqlDataAdapter(sqlCmd);
adp.Fill(ds);
}
catch (Exception ex)
{
throw (ex);
}
finally
{
CN.Close();
}
//调用递归函数,完成树形结构的生成
AddTree(0, (TreeNode)null);
} // 递归添加树的节点
public void AddTree(int ParentID, TreeNode pNode)
{ DataView dvTree = new DataView(ds.Tables[0]);
//过滤ParentID,得到当前的所有子节点
dvTree.RowFilter = "[PARENTID] = " + ParentID;
foreach (DataRowView Row in dvTree)
{
if (pNode == null)
{ //'?添加根节点
TreeNode Node = treeView1.Nodes.Add(Row["ConText"].ToString());
AddTree(Int32.Parse(Row["ID"].ToString()), Node); //再次递归
}
else
{ //添加当前节点的子节点
TreeNode Node = pNode.Nodes.Add(Row["ConText"].ToString());
AddTree(Int32.Parse(Row["ID"].ToString()), Node); //再次递归
}
}
} private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{ }
}
}
以上代码编译都没有出错,但就是在treeview窗体里面没有数据显示,数据库里是有数据的啊,是数据库连接不对吗?请指教
解决方案 »
- 中途结束一个已触发的事件
- datagridview选择行的上下调整
- C/S结构 数据上报实现方式问题
- 高手救命啊!使用 ADSI 操纵 IIS 出现的问题
- 我在下载资源中发布了csharp language specification,大家看看翻译成中文共享吧
- windows application如何不让主窗口出现
- 基础问题,C#中System.Reflection.FieldInfo.IsInputItem的IsInputItem自定义属性是如何实现的
- 问个很菜的问题,C#中有什么函数可以直接判断某一字符串中是否存在着某一字符?谢谢
- C#窗体应用,怎么将设置窗体信息写到配置信息中
- winform里girdview怎样才能像WEB那样点击一行就可以编辑数据阿
- 网站发布后显示全是代码?
- 为什么使用openFileDialog控件后,路径就改变了呢?
id context parentid depth
1 asfds 0 1
2 asdfdas 1 2
3 sdfrgf 1 2
4 ddeee 0 1
5 dddd 2 3
6 dgsdg 2 3