关于treeview winformm 和sqlserver的问题,结点为什么在treeview中不显示呢

haozi130 2011-05-23 05:35:50
我在vs2008中建了个窗体 在窗体中拖了个treeview,想动态连接数据库实现树形结构。我的数据库表tb_zubie如下:
zubieid zhubie parent1id

我在点击窗体右键程序中代码如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using yiqi.Classinfo;

using System.Data.SqlClient;

//using System.Runtime.InteropServices;//窗体特效
//using System.Globalization;//使用农历
//using System.Security.Cryptography;//DES加密
//using System.IO;//文件流
//using System.Data.OleDb;
//using System.Data.Odbc;
//using System.Media;

namespace yiqi
{
public partial class Form2 : Form
{


public Form2()
{
InitializeComponent();

}

private void Form2_Load(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection();
conn.ConnectionString = "data source=.;database=db_yiqi;uid=sa;pwd=haozi110;";
conn.Open();
SqlDataAdapter sqlda = new SqlDataAdapter("select * from db_zubie", conn);
DataSet ds = new DataSet();
sqlda.Fill(ds);
conn.Close();

AddTree(0, (TreeNode)null, treeView1, ds.Tables[0]);

}

public void AddTree(int ParentID, TreeNode pNode, TreeView treeView, DataTable dt)
{

DataView dvTree = new DataView(dt);
//过滤ParentID,得到当前的所有子节点
//dvTree.RowFilter = "[PARENTID] = " + ParentID;
dvTree.RowFilter = "[parent1id]=" + ParentID;
foreach (DataRowView Row in dvTree)
{

TreeNode Node = new TreeNode();
if (pNode == null)
{ //添加根节点
Node.Text = Row["zubie"].ToString();
treeView.Nodes.Add(Node);
//Node.Expanded = true;
AddTree(Int32.Parse(Row["zubieid"].ToString()), Node, treeView, dt); //再次递归
}
else
{ //̀添加当前节点的子节点
Node.Text = Row["zube"].ToString();
pNode.Nodes.Add(Node);
//Node.Expanded = true;
AddTree(Int32.Parse(Row["zubieid"].ToString()), Node, treeView, dt); //再次递归
}
}
}
}
}


能够运行通过,但是窗体上的treeview 不显示结点。不知道为什么。求解···
...全文
56 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
MR.老刘 2011-05-23
  • 打赏
  • 举报
回复
private void Form2_Load(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection();
conn.ConnectionString = "data source=.;database=db_yiqi;uid=sa;pwd=haozi110;";
conn.Open();
SqlDataAdapter sqlda = new SqlDataAdapter("select * from db_zubie", conn);
DataSet ds = new DataSet();
sqlda.Fill(ds);
conn.Close();

AddTree(0, (TreeNode)null, treeView1, ds.Tables[0]);

}

null能被转换为类型么,这种错误也犯 ?
MR.老刘 2011-05-23
  • 打赏
  • 举报
回复
递归中不要处理treeview,递归最终返回一个处理过的treenode
haozi130 2011-05-23
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ssp2009 的回复:]
递归有问题,判断出错吧。
[/Quote]
能说具体点么?
快溜 2011-05-23
  • 打赏
  • 举报
回复
递归有问题,判断出错吧。

27,580

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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