TreeView添加节点不显示

TreeView添加节点不显示

代码一、
private void btn_mb_lj_Click_1(object sender, EventArgs e)
        {
            btn_mb_cslj.Enabled = false;
            btn_mb_lj.Enabled = false;
            String mbdz = txt_mb_dz.Text;
            String mbdk = txt_mb_dk.Text;
            String mbzh = txt_mb_zh.Text;
            String mbpwd = txt_mb_pwd.Text;
            String mbmc = txt_mb_mc.Text;
            this.MBTableName = mbmc;
            //Console.WriteLine(mbdz + mbdk + mbzh + mbpwd + mbmc);
            //Console.Read();
            MBSqlu = new SqlConnectionUtils();
            MBConn = MBSqlu.connsql(mbdz, mbdk, mbzh, mbpwd, mbmc);
            if (MBConn != null)
            {
                cMessage2.Text = "连接成功";

                List<String> tableList = MBSqlu.queryDB();//查询数据库中的表
                AddTree(tableList, mbmc, MBTreeView);

            }
            else
            {
                cMessage2.Text = "连接失败";
            }
            btn_mb_cslj.Enabled = true;
            btn_mb_lj.Enabled = true;
        }
代码二、
public List<String> queryDB()
        {
            List<String> DB = new List<string>();
            String sql = "select name from sysobjects where xtype='u'";
            SqlDataReader reader = null;

            try
            {
                SqlCommand cmd = new SqlCommand(sql, this.conn);
                reader = cmd.ExecuteReader();

                while (reader.Read())
                {
                    DB.Add(reader["name"].ToString());
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.ToString() + "读取数据失败");
            }
            finally
            {
                reader.Close();
            }
            return DB;

        }
代码三、
public void AddTree(List<String> list, string mc, TreeView tree)
        {
            tree.Nodes.Clear();
            tree.StateImageList = dbImg;
            TreeNode parent = new TreeNode();
            parent.Text = mc.Trim();
            parent.StateImageIndex = 0;
            tree.Nodes.Add(parent);

            foreach (string s in list)
            {
                TreeNode son = new TreeNode();
                son.StateImageIndex = 1;
                parent.Nodes.Add(son);
            }
        }
代码四、
public SqlConnection connsql(string ip, string dk, string zh, string pwd, string dbname)
        {
            try
            {
                if (conn != null)
                {
                    conn.Close();
                    conn.Dispose();
                }
                string conncetion = "data source=" + ip + "," + dk + ";initial catalog=" + dbname + ";user id=" + zh + ";pwd=" + pwd + "";
                conn = new SqlConnection(conncetion);
                conn.Open();
            }
            catch (Exception e)
            {
                throw new Exception(e.ToString() + "打开数据库失败");
            }
            return conn;
        }

代码一为前台的按钮事件方法,代码二读取数据内容,代码三添加TreeView的方法,代码四为链接数据的方法。
前台winform有个TreeView和一个Button点击按钮后,把获取的内容添加到TreeView中进行显示,但是只显示了一个父节点所有的子节点全部都不能显示。
求大神指点!!

补充一下,前台运行截图:
图片说明

1个回答

涉及到数据库的访问,建议你还是自己调试一下。跟踪进去,一个看有没有进入catch,一个看sql是否拼接正确,一个看数据库返回了什么数据,然后看你添加节点的代码有没有执行到

while (reader.Read())
这个地方看有没有数据

foreach (string s in list)
这里list是否为空

Jasonchne
Jasonchne 你说的那两处全部都有数据,如果没数据的话父节点就不会显示了
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐