Как работать с TreeView

luser
Дата: 20.04.2007 09:08:00
Вопрос такой (наверно оч простой, но я новичок ) есть база с тремя таблицами: Objects, Nodes, Units

Objects: Id, Name, Description

Nodes: Id, ObjectId, Name, Desciption

Units: Id, NodeId, Name, Description


Нужно сделать из этого древовидное меню: Объекты в каждом объекте связанные с ним Узлы в каждом узле связанные с ним Юниты

Если кто-нибудь выручит подробным алгоритмом или кусочком кода буду очень признателен.
Остап Ибрагимович
Дата: 20.04.2007 09:25:27
luser
Вопрос такой (наверно оч простой, но я новичок ) есть база с тремя таблицами: Objects, Nodes, Units

Objects: Id, Name, Description

Nodes: Id, ObjectId, Name, Desciption

Units: Id, NodeId, Name, Description


Нужно сделать из этого древовидное меню: Объекты в каждом объекте связанные с ним Узлы в каждом узле связанные с ним Юниты

Если кто-нибудь выручит подробным алгоритмом или кусочком кода буду очень признателен.


Ну вот простенький пример, только по связке з двумя таблицами, может поможет

    const string connectionString = @"Provider = Microsoft.Jet.OleDb.4.0;" +
    "data source = C:/basa.mdb";
    DataSet ds = new DataSet();
    public TreeNode root;

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            myTree();
            TreeView1.CollapseAll();
            TreeView1.ShowLines = true;
        }
    }
    public void myTree()
    {
        ds = basa();
        foreach (DataRow dr in ds.Tables["film"].Rows)
        {
            root = new TreeNode("Название - " + (string)dr["Film"]);
            TreeView1.Nodes.Add(root);

            foreach (DataRow childRow in dr.GetChildRows("film"))
            {
                TreeNode childNode = new TreeNode((string)childRow["genre"]);
                TreeNode childNode2 = new TreeNode((string)childRow["image"].ToString());
                TreeNode childNode3 = new TreeNode((string)childRow["year"].ToString());

                root.ChildNodes.Add(childNode);
                root.ChildNodes.Add(childNode2);
                root.ChildNodes.Add(childNode3);

            }
        }
    }
    public DataSet basa()
    {
        OleDbConnection con = new OleDbConnection(connectionString);
        OleDbDataAdapter daFilm = new OleDbDataAdapter("SELECT * FROM film", con);
        OleDbDataAdapter daFinfo = new OleDbDataAdapter("SELECT * FROM dataF", con);

        ds = new DataSet();
        daFilm.Fill(ds, "film");
        daFinfo.Fill(ds, "dataF");
        ds.Relations.Add("film", ds.Tables["film"].Columns["id"], ds.Tables["dataF"].Columns["id"]);

        return ds;
    }