Jasonchne 2019-07-05 15:04 采纳率: 33.3%
浏览 955
已采纳

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中进行显示,但是只显示了一个父节点所有的子节点全部都不能显示。
求大神指点!!

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

  • 写回答

2条回答 默认 最新

  • threenewbee 2019-07-05 15:34
    关注

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

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

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 关于#python#的问题
  • ¥15 主机可以ping通路由器但是连不上网怎么办
  • ¥15 数据库一张以时间排好序的表中,找出多次相邻的那些行
  • ¥50 关于DynamoRIO处理多线程程序时候的问题
  • ¥15 kubeadm部署k8s出错
  • ¥15 Abaqus打不开cae文件怎么办?
  • ¥20 双系统开机引导中windows系统消失问题?
  • ¥15 小程序准备上线,软件开发公司需要提供哪些资料给甲方
  • ¥15 关于生产日期批次退货退款,库存回退的问题
  • ¥15 手机应用的时间可以修改吗