Jasonchne 2019-07-05 15:04 采纳率: 50%
浏览 946
已采纳

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 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)