2016-02-26 3 views
0

Я понимаю, что мой заголовок был очень расплывчатым, я не уверен, как подвести итог.Добавление юнитов в список узлов

У меня есть соединение с базой данных MySQL, которая берет столбец из таблицы, которую я хочу просмотреть в моем TreeView, и добавляет данные в каждую строку в качестве узла, я хочу добавить подуглеры к добавляемым узлам, но данные будут меняться в зависимости от каждого узла.

 string myConString = "Server=localHost;Database=fakekeeper;Uid=root;Pwd=**********;"; 
     string query = "SELECT OSP FROM OSP;"; 
     MySqlConnection conn = new MySqlConnection(myConString); 
     MySqlDataReader reader; 
     MySqlCommand cmd = new MySqlCommand(query, conn); 
     conn.Open(); 
     reader = cmd.ExecuteReader(); 
     TreeNode tables = new TreeNode(); 

     treeView1.Nodes.Add(tables); 

     while (reader.Read()) 
     { 

      tables.Nodes.Add(reader["OSP"].ToString()); 
     } 
     conn.Close(); 

Как это работает в моей базе данных каждый продукт имеет OSP, потому что OSP может быть много продуктов, но продукт может иметь только один OSP, я хочу сделать это так, на мой взгляд, дерево, когда я дважды нажмите OSP он показывает мне все Продукты, связанные с этим OSP в treeView как узлы, я не уверен, могу ли я добавить их в мой цикл while или мне нужно создать другое?

ответ

0

мне удалось понять это сам, просто добавив еще один цикл, пока я сумел добавить к узлам:

 string myConString = "Server=localHost;Database=fakekeeper;Uid=root;Pwd=**********;"; 
     string query = "SELECT OSP FROM OSP;"; 
     MySqlConnection conn = new MySqlConnection(myConString); 
     MySqlDataReader reader; 
     MySqlCommand cmd = new MySqlCommand(query, conn); 
     conn.Open(); 
     reader = cmd.ExecuteReader(); 
     TreeNode tables = new TreeNode(); 

     treeView1.Nodes.Add(tables); 

     while (reader.Read()) 
     { 
      TreeNode alphaNode = new TreeNode(reader["OSP"].ToString()); 
      tables.Nodes.Add(alphaNode); 
      MySqlConnection subNodeConn = new MySqlConnection(myConString); 
      string subNodeQuery = string.Format("SELECT product FROM {0};", reader["OSP"].ToString()); 
      MySqlCommand subNodeCommand = new MySqlCommand(subNodeQuery, subNodeConn); 
      MySqlDataReader subNodeReader; 
      subNodeConn.Open(); 
      subNodeReader = subNodeCommand.ExecuteReader(); 

      while(subNodeReader.Read()) 
      { 
       alphaNode.Nodes.Add(subNodeReader["Product"].ToString()); 
      } 
     } 
     conn.Close(); 

Пожалуйста, скажите мне, если есть более эффективный способ сделать это, хотя?

Смежные вопросы