我理解我的标题非常模糊,我不确定如何总结。
我有一个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关联的所有产品作为节点我不确定我是否可以在我的while循环中添加它们或者我是否需要创建另一个?
答案 0 :(得分:0)
我设法通过添加另一个我设法添加到节点的while循环来解决这个问题:
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();
请告诉我是否有更有效的方法可以做到这一点?